Me gusta mucho el video de 50 fps, pero no puedo hacer que ffmpeg lo convierta a 50 fps para mí.
La resolución de 720p está absolutamente bien para mí, solo necesito más FPS.
50i se ve mucho más suave en los reproductores adecuados (por ejemplo, el video desentrelazado del reproductor GOM y lo reproduce a 50 Hz. Gran diferencia con el video de 25 Hz.) ...
Mi línea de comando actual es:
ffmpeg -i 00010.MTS -threads 3 -filter:v yadif -s "1280x720" -r 50 -b:v 20M output.avi
Aquí hay más detalles del video. La fuente de video es de la videocámara Canon HF10 AVCHD.
ffmpeg -i 00010.MTS -threads 3 -filter:v yadif -s "1280x720" -r 50 -b:v 20M output.avi
ffmpeg version N-37541-g670229e Copyright (c) 2000-2012 the FFmpeg developers
built on Feb 3 2012 20:14:17 with gcc 4.6.2
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-ru
ntime-cpudetect --enable-avisynth --enable-bzlib --enable-frei0r --enable-libope
ncore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --en
able-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger -
-enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvo-amrwben
c --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxavs --enable-
libxvid --enable-zlib
libavutil 51. 37.100 / 51. 37.100
libavcodec 54. 0.102 / 54. 0.102
libavformat 54. 0.100 / 54. 0.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 61.100 / 2. 61.100
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 6.100 / 0. 6.100
libpostproc 52. 0.100 / 52. 0.100
[h264 @ 000000000033FA30] Increasing reorder buffer to 1
Input #0, mpegts, from '00010.MTS':
Duration: 00:03:13.92, start: 0.482156, bitrate: 16304 kb/s
Program 1
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p, 1920x1
080 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, stereo, s16,
256 kb/s
File 'output.avi' already exists. Overwrite ? [y/N] y
w:1920 h:1080 pixfmt:yuv420p tb:1/1000000 sar:1/1 sws_param:
[yadif @ 0000000003CE95B0] mode:0 parity:-1 auto_enable:0
[scale @ 0000000003CE9550] w:1920 h:1080 fmt:yuv420p -> w:1280 h:720 fmt:yuv420p
flags:0x4
Output #0, avi, to 'output.avi':
Metadata:
ISFT : Lavf54.0.100
Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 1280x720 [SAR 1:1 DA
R 16:9], q=2-31, 20000 kb/s, 50 tbn, 50 tbc
Stream #0:1: Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, stereo, s16, 128 kb
/s
Stream mapping:
Stream #0:0 -> #0:0 (h264 -> mpeg4)
Stream #0:1 -> #0:1 (ac3 -> libmp3lame)
Press [q] to stop, [?] for help
frame= 15 fps= 0 q=2.0 size= 945kB time=00:00:00.62 bitrate=12481.3kbits/
frame= 32 fps= 32 q=2.0 size= 2132kB time=00:00:01.30 bitrate=13435.2kbits/
frame= 51 fps= 34 q=2.0 size= 3372kB time=00:00:02.06 bitrate=13409.2kbits/
frame= 70 fps= 35 q=2.0 size= 4641kB time=00:00:02.82 bitrate=13482.8kbits/
frame= 76 fps= 35 q=2.0 Lsize= 5047kB time=00:00:03.06 bitrate=13511.9kbits
-vcodec libx264
? No es que deba importar mucho a ~ 20 MBit / s, pero aún así.Respuestas:
"Para la mayoría de los casos prácticos, no es posible recuperar un video progresivo completo de contenido entrelazado".
Además, si pudiera cargar una pequeña muestra del video, ayudaría a su causa con temor.
Fuente: mplayerhq.hu/DOCS/HTML/en/menc-feat-telecine.html
fuente
Al igual que el entrelazado, el contenido progresivo divide cada cuadro en 2 campos, duplicando así la velocidad de cuadros, el método común de desentrelazado es combinar cada uno de los 2 campos en 1 cuadro, lo que reduce la velocidad en 2, lo que lleva a 50 a 25 fps. Por supuesto, puede duplicar cada fotograma final, pero eso no proporciona ningún beneficio.
Primero, podemos leer para no usar -deinterlace, y yadif en su lugar (lo que usted ya hace):
Probablemente encontrarás el seccion yadif De la documentación de FFMPEG bastante interesante:
Observe cómo el MODO predeterminado es 0, lo que indica a FFMPEG que genere 1 fotograma para cada 2 campos, reduciendo a la mitad los fps. Creo que lo que estás buscando es MODO 1: un cuadro por campo . No estoy muy seguro de cómo usar estos parámetros opcionales pero quizás algo como
fuente
De acuerdo con la documentación , la
-r
La opción establece los cuadros de archivo de salida por segundo. Por ejemplo, esto establece la salida a 50 cuadros por segundo:fuente
ffmpeg -i input.avi -deinterlace -filter:v yadif -s "1280x720" output.avi
fuente
Este comando está trabajando para mí:
La fuente fue un archivo de videocámara de Sony.
fuente