Ich mag 50fps-Videos wirklich, aber ich kann ffmpeg nicht dazu bringen, sie für mich in 50fps zu konvertieren.
720p Auflösung ist absolut in Ordnung für mich, brauche nur mehr FPS.
50i sieht in richtigen Playern einfach viel flüssiger aus (zum Beispiel Gter Player deinterlaces Video und spielt es mit 50 Hz ab. Sehr großer Unterschied zu 25 Hz Video.) ...
Meine aktuelle Befehlszeile lautet:
ffmpeg -i 00010.MTS -threads 3 -filter:v yadif -s "1280x720" -r 50 -b:v 20M output.avi
Hier finden Sie weitere Videodetails. Das Quellvideo stammt vom Cannon HF10 AVCHD-Camcoder.
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
. B. Nicht, dass es bei ~ 20 MBit / s so wichtig sein sollte, aber dennoch.Antworten:
"In den meisten praktischen Fällen ist es nicht möglich, ein vollständiges progressives Video aus Interlaced-Inhalten abzurufen."
Auch wenn Sie ein kleines Beispiel des Videos hochladen könnten, würde dies Ihrer Sache sehr helfen.
Quelle: mplayerhq.hu/DOCS/HTML/en/menc-feat-telecine.html
quelle
Genau wie das Interlacing von progressivem Inhalt jeden Frame in zwei Felder unterteilt und so die Framerate verdoppelt, besteht die übliche Methode des Deinterlacing darin, jeweils zwei Felder zu einem Frame zu kombinieren, wodurch die Rate um 2 verringert wird und 50 in 25 fps umgewandelt werden. Sie können natürlich jeden letzten Frame verdoppeln, aber das bietet keinen Vorteil.
Erstens können wir lesen, nicht -deinterlace und stattdessen yadif zu verwenden (was Sie bereits tun):
Sie werden wahrscheinlich den yadif-Abschnitt der FFMPEG-Dokumentation ziemlich interessant finden:
Beachten Sie, dass der Standard-MODUS 0 ist, wodurch FFMPEG angewiesen wird, 1 Frame für jeweils 2 Felder auszugeben, wodurch die fps halbiert werden. Ich denke, was Sie suchen, ist MODE 1: ein Frame pro Feld . Ich bin mir nicht sicher, wie ich diese optionalen Parameter verwenden soll, aber vielleicht so etwas
quelle
Gemäß der Dokumentation , die
-r
Set Option , um die Ausgabedatei Frames pro Sekunde. Dies setzt beispielsweise die Ausgabe auf 50 Bilder pro Sekunde:quelle
ffmpeg -i input.avi -deinterlace -filter:v yadif -s "1280x720" output.avi
quelle
Dieser Befehl funktioniert für mich:
Die Quelle war eine Sony-Camcorder-Datei.
quelle