ffmpeg -i video_1920x1080.mp4 -vf scale=-1:720 -c:v libx264 -crf 18 -preset veryslow -c:a copy video_1280x720.mp4
ffmpeg -y -i input.mp4 -c:v libx265 -b:v 2600k -x265-params pass=1 -an -f null /dev/null && \ ffmpeg -i input.mp4 -c:v libx265 -b:v 2600k -x265-params pass=2 -c:a copy output.mp4
unter Windows
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 1 -an -f null NUL && ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 2 -c:a libopus output.mkv
ffmpeg - i input.mp4 -c:v libsvtav1 -vf format=yuv420p10le -preset 6 -crf 23 -g 30 output.mkv
siehe https://sebsauvage.net/wiki2/doku.php?id=ffmpeg&s[]=ffmpeg#re-encodage_en_av1
ffmpeg -i input.mkv -map 0:v -c:v libsvtav1 -preset 4 -crf 30 -tune 0 -pix_fmt yuv420p10le -g 120 -map 0:a? -c:a copy -map 0:s? -c:s copy out.mkv
-i input.mkv input-Name der Eingabedatei.-map 0:v -c:v libsvtav1 es wird der svt-av1-Encoder verwendet. svt-av1 ist schnell-crf 30 Komprimierungsrate. Der CRF ist die gewünschte visuelle Qualität (die Videobitrate ist daher variabel, um eine konstante visuelle Qualität aufrechtzuerhalten. Ein niedrigerer Wert bedeutet bessere Qualität, aber eine größere resultierende Datei. Oberhalb von 36 beginnt die Qualität recht schnell zu sinken.-tune 0 Um eine konstante Qualität zu erreichen, benötigt man einen Algorithmus, der diese Qualität misst. Durch das Hinzufügen dieser Option wird ein Algorithmus ausgewählt, der dem menschlichen Sehverhalten näher kommt.-preset 4 Der svt-av1-Codec verfügt über unzählige Parameter, daher gibt es verschiedene presets, die es ermöglichen es Ihnen, schneller zu komprimieren (auf Kosten der Größe der endgültigen Datei). Je niedriger der Wert, desto kleiner ist die erhaltene Datei, desto länger ist jedoch die Komprimierungszeit. Folgendes ist zu beachten: Die Werte 4 bis 6 liefern gute Ergebnisse mit anständigen Kodierungszeiten. Die Verwendung von Werten unter 4 verlängert die Komprimierungszeit erheblich und führt zu einem vernachlässigbaren Gewinn. Bereits zwischen 4 und 6 ist der Unterschied gering. Weitere Informationen finden Sie auf dieser Seite. Das Interessante an Preset 4 ist, dass ab diesem Schwellenwert die globale Bewegungskompensation aktiviert wird, was bei Filmen mit viel Bewegung von Vorteil sein kann. Ab 7 beginnt die Qualität immer mehr zu leiden. Hohe Voreinstellungen sind eher für die Echtzeitkodierung konzipiert.-pix_fmt yuv420p10le Standardmäßig werden Farben/Helligkeit auf 8 Bit kodiert. Diese Option erzwingt die 10-Bit-Kodierung, wodurch Streifenbildung in dunklen Szenen weitgehend vermieden werden kann, ohne die Dateigröße wesentlich zu beeinträchtigen.-g 120 Fügt alle 120 Frames ein I-Frame hinzu. Bei 24 Bildern pro Sekunde sind das alle 5 Sekunden. Referenzbilder erleichtern den Spielern das „Suchen“, d. h. das sofortige Auflegen des Videostreams, wenn Sie den Wiedergabecursor bewegen. (Standardmäßig legt ffmpeg den Wert 9999 fest, was die Navigation in Videos sehr erschwert.-map 0:a? -c:a copy Für Audio alle Audiospuren unverändert kopieren (ohne Neukodierung). Das kann man natürlich ändern, indem man beispielsweise den Opus-Codec verwendet um größe Kompression im Audiobereich zu erzielen--map 0:s? -c:s copy Kopiert auch alle Untertitelspuren. Das '?' (Fragezeichen) wird verwendet, um Fehler zu vermeiden, wenn keine Untertitelspur vorhanden ist (s. o. für Audio).output.mkv Output-Datei. Ein mkv-Container ist zu empfehlen, da dieser in der Lage ist, den Videostream, aber auch mehrere Audiostreams und Untertitel zu speichern.Fall 1: audio beginnt vor video (150 ms = 0.15 s)
ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -c:v copy -c:a copy -map 0:0 -map 1:1 video_insync.mp4
Fall 2: video beginnt vor audio (150 ms = 0.15 s)
ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -c:v copy -c:a copy -map 0:1 -map 1:0 video_insync.mp4
ffmpeg -f concat -safe 0 -i liste.txt -c copy OUT.mp4
wobei liste.txt unter Windows
file 'd:/videos/t1.mp4' file 'd:/videos/t2.mp4'
ffmpeg -i in.mp4 -ss [start] -t [dauer] -c copy out.mp4
oder
ffmpeg -i in.mp4 -ss [start] -to [bis-zum-zeitpunkt] -c copy out.mp4
ffmpeg -i input-video.mp4 -vn -acodec copy output-audio.aac
ffmpeg -i IN-video-mit-EN-tonspur.mp4 \ -i audio-DE.m4a \ -c copy \ -map 0:v:0 \ -map 0:a:0 \ -map 1:a:0 \ -metadata:s:a:0 language=eng \ -metadata:s:a:1 language=deu \ OUT-video-EN-DE.mp4
Das mapping: Datei 0 ist das Video, Datei 1 die deutsche Audiospur und schreibt die Metadaten der Sprache mit hinein, damit man bei switchen im Video die entsprechende Tonspur angezeigt bekommt
bzw. deutsch und englische Spur
ffmpeg -i in-ohne-audio.mp4 \ -i deu.aac \ -i eng.aac \ -c copy \ -map 0:v:0 \ -map 1:a:0 \ -map 2:a:0 \ -metadata:s:a:0 language=deu \ -metadata:s:a:1 language=eng \ out.mp4
ffmpeg -i video.mp4 -filter:a "speechnorm=e=12.5:r=0.0001:l=1" video-normalized.mp4
Recommended width and height for videos with 16:9 aspect ratios:
Best Choice: 2nd Best: 3rd Best:
Multiples of 16 Multiples of 8 Multiples of 4
1920 x 1080 1792 x 1008 1856 x 1044
1280 x 720 1152 x 648 1216 x 684
1024 x 576 896 x 504 1088 x 612
768 x 432 640 x 360 960 x 540
512 x 288 384 x 216 832 x 468
256 x 144 128 x 72 704 x 396
576 x 324
448 x 252
320 x 180
192 x 108
entscheidend ist -map 0, das alle streams einbindet
ffmpeg -i input.mkv -c copy -map 0 output.mp4
oder mit h264 transcode-Einstellungen
ffmpeg \ -analyzeduration 100M -probesize 100M \ -i input.mkv \ -map 0 \ -codec:v libx264 -crf 21 \ -codec:a aac -b:a 384k \ -codec:s copy \ output.mp4
ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4
ffmpeg -i input.wav -c:a libmp3lame -q:a 0 output.mp3
verwendet den LAME-Encoder mit -V 0 Preset, also VBR und ca. ~245 kbps, siehe Tabelle
ffmpeg -y -i http://domain.tld/stream.m3u8 -c:v copy -c:a copy -t 1:00:00 out.mp4 > /tmp/streamrec.log 2>&1;
ffmpeg -y -i http://domain.tld/stream.m3u8 -c copy -t 1:00:00 out.mp4 > /tmp/streamrec.log 2>&1;
-y : Überschreiben der out.mp4 ohne Nachfragen-i : Input Datei oder URL -c:v copy: Video-Codec übernehmen (kopieren)-c:a copy: Audio-Codec übernehmen (kopieren)-t: 1:00:00 Stunde aufnehmen > /tmp/streamrec.log 2>&1;: nicht nach std-out sondern in Datei /tmp/streamrec.log schreiben-c copy: Video- und Audio- Codec übernehmen (kopieren)ffmpeg -y -i http://domain.tld/stream.m3u8 -c copy -f segment -segment_time 3600 out%03d.mp4 > /tmp/streamrec.log 2>&1;
ffmpeg -y -i https://domain.tld/stream/v1.m3u8 -i https://domain.tld/stream/a1.m3u8 -t 00:10:00 -c copy -map 0:0 -map 1:0 streamrecord.mp4
-i https://domain.tld/stream/v1.m3u8 Videostream-i https://domain.tld/stream/a1.m3u8 Audiostream-t 00:10:00 Aufnahmezeit = 10 Minuten-c copy Audio und Videocodec übernehmen-map 0:0 Videostream in Container einbetten-map 1:0 Audiostream in Container einbettenstreamrecord.mp4 Output Dateiname