2016-02-01 2 views
0

У меня есть захваченное видео 720x480 с соотношением сторон экрана 16: 9, которое я хочу обрезать, изменять размер и прокрутку, но только команда кодирования x264 дает мне головную боль.ffmpeg weird x264 поведение кодирования

(Screenshot of input.m2v) Вот моя команда:

ffmpeg -ss 1861 -i input.m2v -c:v libx264 -profile:v main -preset:v medium -level 3.1 -x264opts crf=21.228 -t 60 -y -f mp4 output.mp4 

А вот выход FFmpeg:

(Screen shot of output.mp4)

Input #0, mpegvideo, from 'input.m2v': 
    Duration: N/A, bitrate: N/A 
    Stream #0:0: Video: mpeg2video (Main), yuv420p(tv), 720x480 [SAR 32:27 DAR 1 
6:9], max. 6605 kb/s, 31.02 fps, 59.94 tbr, 1200k tbn, 59.94 tbc 
[libx264 @ 02ba84c0] using SAR=32/27 
[libx264 @ 02ba84c0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX 
[libx264 @ 02ba84c0] profile Main, level 3.1 
[libx264 @ 02ba84c0] 264 - core 144 r2525 40bb568 - H.264/MPEG-4 AVC codec - Cop 
yleft 2003-2014 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deb 
lock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 m 
e_range=16 chroma_me=1 trellis=1 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chro 
ma_qp_offset=-2 threads=12 lookahead_threads=2 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=25 scene 
cut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=21.2 qcomp=0.60 qpmin 
=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00 
Output #0, mp4, to 'output.mp4': 
    Metadata: 
    encoder   : Lavf56.19.100 
    Stream #0:0: Video: h264 (libx264) ([33][0][0][0]/0x0021), yuv420p, 720x48 
0 [SAR 32:27 DAR 16:9], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc 
    Metadata: 
     encoder   : Lavc56.21.102 libx264 
Stream mapping: 
    Stream #0:0 -> #0:0 (mpeg2video (native) -> h264 (libx264)) 

Размер выходной 720x480, отображаются в виде 853x480, как и ожидалось. Но похоже, что рамка была вертикально масштабирована в 1,18, а затем обрезана до высоты 480, так что я теряю верх и низ рамки. В самом деле, поведение эквивалентно:

-vf "scale=720:569,crop=720:480:0:0" 

Хотя я предполагаю, что соотношение сторон играет роль здесь (я думаю, что 1,18 фактор действительно (16/9)/(720/480)) Я удивлен, что ffmpeg сделает это с самого начала. Может быть, кто-то более осведомленный, чем я, мог бы объяснить это?

+1

Этот сайт предназначен для программирования вопросов - мы не являемся общей технической поддержкой программного обеспечения. –

+0

Скриншоты источника и вывода? – Mulvya

ответ

2

На основании скриншотов здесь нет ошибки.

Ваш источник 720x480 с DAR 16: 9, но Potplayer сохраняет свое видео окно на 720x480, соблюдая пропорции M2V, то есть некоторые дополнения к почтовому ящику в первом видео добавляются Potplayer и не являются в видеопотоке. На выходе горизонтальный холст соответствующим образом расширяется до 853 пикселей. Масштабирование не произошло.

+0

Большое спасибо за то, что нашли время, чтобы дать ответ по этому вопросу. Обычно я проверяю заполнение с помощью VirtualDub, на который не влияют пропорции, и я не понимал, что Potplayer может изменить дополнение. Я все еще не понимаю, почему Potplayer показывает входные и выходные видео по-разному, в то время как оба имеют DAR 16: 9? Но это еще один вопрос. – JMor

Смежные вопросы