Ich verwende diesen Befehl, um "myFile.webm" zu erstellen, ein VP9-Video mit einem Standbild:
$ ffmpeg -i myOriginialPureAudioFile.opus -loop 1 -i myAudioFile_640x360.png -shortest -threads 4 -speed max -c:a copy myFile.webm
Input #0, ogg, from 'myOriginialPureAudioFile.opus':
Duration: 01:53:19.80, start: 0.000000, bitrate: 24 kb/s
Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp
Metadata:
LANGUAGE : eng
TITLE : unnamed
ENCODER : Lavf57.83.100
Input #1, png_pipe, from 'myAudioFile_640x360.png':
Duration: N/A, bitrate: N/A
Stream #1:0: Video: png, rgb24(pc), 640x360 [SAR 72:72 DAR 16:9], 25 fps, 25 tbr, 25 tbn, 25 tbc
File 'myFile.webm' already exists. Overwrite ? [y/N] y
Stream mapping:
Stream #1:0 -> #0:0 (png (native) -> vp9 (libvpx-vp9))
Stream #0:0 -> #0:1 (copy)
Press [q] to stop, [?] for help
[libvpx-vp9 @ 0x5655578268c0] v1.3.0
Output #0, webm, to 'myFile.webm':
Metadata:
encoder : Lavf57.83.100
Stream #0:0: Video: vp9 (libvpx-vp9), yuv420p, 640x360 [SAR 1:1 DAR 16:9], q=-1--1, 200 kb/s, 25 fps, 1k tbn, 25 tbc
Metadata:
encoder : Lavc57.107.100 libvpx-vp9
Side data:
cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
Stream #0:1(eng): Audio: opus, 48000 Hz, mono, fltp
Metadata:
LANGUAGE : eng
TITLE : unnamed
ENCODER : Lavf57.83.100
frame= 4863 fps= 22 q=0.0 Lsize= 987kB time=00:03:14.48 bitrate= 41.6kbits/s speed=0.879x
Die Geschwindigkeit beträgt etwa 0,88x, wie kann ich diese Codierung viel schneller machen?
Auf meinem Computer ist Geschwindigkeit = 0,953x bei Verwendung der Standardeinstellung
c:\ffmpeg\ffmpeg -y -i out_music.opus -loop 1 -i temp.png -shortest -threads 4 -speed max -c:a copy myFile.webm
frame= 184 fps= 24 q=0.0 Lsize= 843kB time=00:00:07.32 bitrate= 943.8kbits/s speed=0.953x
Geschwindigkeit = 1,73x bei Verwendung der Echtzeiteinstellung
c:\ffmpeg\ffmpeg -y -i out_music.opus -loop 1 -i temp.png -shortest -threads 4 -speed max -c:a copy -deadline realtime myFile.webm
frame= 491 fps= 43 q=0.0 Lsize= 1809kB time=00:00:19.60 bitrate= 755.9kbits/s speed=1.73x
Da die Eingabe eine PNG-Datei ist, könnte die Bildrate pro Sekunde geringer sein; Geschwindigkeit = 5,84x bei Verwendung der fps = 5 - Einstellung
c:\ffmpeg\ffmpeg -y -i out_music.opus -loop 1 -i temp.png -shortest -threads 4 -speed max -c:a copy -deadline realtime -vf fps=5 myFile.webm
frame= 218 fps= 29 q=0.0 Lsize= 1316kB time=00:00:43.40 bitrate= 248.3kbits/s speed=5.84x
Referenz: https://trac.ffmpeg.org/wiki/Encode/VP9
fps
Filter, -vf fps=5
wäre gleich -r 5
als Ausgabeoption zu lesenman ffmpeg | sed -n "/-r.:/,/output option/p"
Eine Lösung ( hier gefunden ) besteht darin, einen sehr kleinen -framerate
Wert zu verwenden.
Gyan
SebMa
-c:a copy
weil der WebM-Container Opus Audio unterstütztGyan
-strict -2
hinzugefügt.SebMa
Gyan
SebMa