Question réduire la taille de mp4 en utilisant avconv


Je regarde cette question

Réduire la taille de MP4

et je veux le faire en utilisant avconv, cependant, je voudrais aussi réduire la taille du cadre d'environ la moitié. Mon problème est quand je fais

avconv -i "$file" -s 640x480 -strict experimental "mp4/$file.mp4"

La sortie est incroyablement pixellisée et dégrade trop la qualité de la vidéo. J'essaie de convertir un fichier vidéo en format plus petit pour mon ordinateur de poche. Fondamentalement, j'essaie d'obtenir ceci:

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L3.1
Format settings, CABAC                   : No
Format settings, ReFrames                : 4 frames
Format settings, GOP                     : M=2, N=48
Codec ID                                 : V_MPEG4/ISO/AVC
Duration                                 : 21mn 31s
Bit rate mode                            : Variable
Maximum bit rate                         : 1 101 Kbps
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 23.976 fps
Standard                                 : Component
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Default                                  : Yes
Forced                                   : No

Pour ressembler à ça

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : High@L3.0
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 21mn 45s
Bit rate                                 : 218 Kbps
Width                                    : 624 pixels
Height                                   : 352 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive
Bits/(Pixel*Frame)                       : 0.041
Stream size                              : 33.9 MiB (60%)
Writing library                          : x264 core 138 r2 9e941d1
Encoding settings                        : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=3 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=crf / mbtree=1 / crf=23.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00

Question: Comment réduisez-vous le débit binaire et la taille de l'image en utilisant avconv? Si cela ne peut pas être fait dans avconv, est-ce que je peux le faire dans ffmpeg? Vidéo dans la partie supérieure ~ = 200mb, vidéo dans la partie inférieure ~ = 50mb, je veux obtenir 50mb avec le moins de pixellisation possible.


4
2017-09-09 01:35


origine




Réponses:


S'il vous plaît, chaque fois que vous demandez de l'aide avec avconv, attachez sa sortie complète. Sinon, quiconque répond doit avoir recours à la conjecture.

Je suppose que dans cette situation, votre avconv (ou plus précisément libavcodec) n'est pas compilé avec libx264, de sorte que le codeur mpeg4 ASP interne (avec des valeurs par défaut atroces) est utilisé. La solution consiste donc à obtenir libavcodec avec le support libx264 - sur Ubuntu, vous devez installer libavcodec-extra-53, sinon vous devrez peut-être compiler vous-même.


4
2017-09-09 05:32



Je pense que tu as raison, j'ai compilé ffmpeg en utilisant ce guide ffmpeg.org/trac/ffmpeg/wiki/UbuntuCompilationGuide, mais avconv n'utilise pas les bonnes bibliothèques, laissez-moi essayer ffmpeg quand je rentre à la maison et approuve mal votre réponse si cela fonctionne - iloveretards


Je ne connais pas avconv, mais en tout cas vous devriez avoir la moitié de la résolution originale. Étant donné que votre résolution d'origine est 1280x720, vous devez utiliser 640x360. De cette façon, l'encodeur doit redimensionner exactement 4 pixels en un seul au lieu de 4,52826734 (composé) comme avec la résolution choisie. Cela évite au moins les problèmes lorsque le codeur ne dispose pas d'algorithmes de redimensionnement disponibles.


5
2017-09-09 06:59



c'est un bon point aussi, dommage que je ne puisse pas voter, va essayer - iloveretards