J'aime vraiment la vidéo à 50 images par seconde, mais je ne peux pas faire de ffmpeg la convertir en 50 images par seconde pour moi.
La résolution 720p me convient parfaitement, j'ai juste besoin de plus de FPS.
50i semble juste beaucoup plus fluide dans les bons lecteurs (par exemple, GOM Player désentrelace la vidéo et la lit à 50 Hz. Très grande différence avec la vidéo à 25 Hz.) ...
Ma ligne de commande actuelle est:
ffmpeg -i 00010.MTS -threads 3 -filter:v yadif -s "1280x720" -r 50 -b:v 20M output.avi
Voici plus de détails vidéo. La vidéo source provient du caméscope Cannon 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
? Pas que cela devrait avoir autant d'importance à ~ 20 Mbits / s, mais quand même.Réponses:
"Dans la plupart des cas pratiques, il n'est pas possible de récupérer une vidéo progressive complète à partir d'un contenu entrelacé."
De plus, si vous pouviez télécharger un petit échantillon de la vidéo, cela aiderait considérablement votre cause.
Source: mplayerhq.hu/DOCS/HTML/en/menc-feat-telecine.html
la source
Tout comme l'entrelacement d'un contenu progressif divise chaque image en 2 champs, doublant ainsi la fréquence d'images, la méthode courante de désentrelacement consiste à combiner chaque 2 champs en 1 image, ce qui réduit le taux de 2, ce qui prend 50 à 25 images par seconde. Vous pouvez bien sûr doubler chaque image finale, mais cela n'apporte aucun avantage.
Tout d'abord, nous pouvons lire pour ne pas utiliser -deinterlace et yadif à la place (ce que vous faites déjà):
Vous trouverez probablement la section yadif de la documentation FFMPEG assez intéressante:
Remarquez comment le MODE par défaut est 0, ce qui indique à FFMPEG de sortir 1 trame pour chaque 2 champs, réduisant ainsi de moitié les fps. Je pense que ce que vous recherchez est le MODE 1: une image par champ . Je ne sais pas trop comment utiliser ces paramètres facultatifs, mais peut-être quelque chose comme
la source
Selon la documentation , l'
-r
option définit les images du fichier de sortie par seconde. Par exemple, cela définit la sortie à 50 images par seconde:la source
ffmpeg -i input.avi -deinterlace -filter:v yadif -s "1280x720" output.avi
la source
Cette commande fonctionne pour moi:
La source était un fichier caméscope Sony.
la source