Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
ffmpeg [2021-05-03 16:03] – [libaom AV1 2 pass] fzap | ffmpeg [2023-12-11 13:49] (aktuell) – Untertitel fzap | ||
---|---|---|---|
Zeile 14: | Zeile 14: | ||
* -c:a audio codec, bei copy wird er übernommen | * -c:a audio codec, bei copy wird er übernommen | ||
- | ==== h265 2pass-Kodierung | + | ==== HEVC, h265 2pass-Kodierung |
<code bash> | <code bash> | ||
Zeile 21: | Zeile 21: | ||
==== libaom AV1 2 pass-Kodierung==== | ==== libaom AV1 2 pass-Kodierung==== | ||
+ | |||
+ | Leider ist die AV1-Kodierung auf einem Standard-Notebook oder Office-PCs unglaublich langsam und daher unrealistisch (Stand 01/ | ||
+ | |||
<code bash> | <code bash> | ||
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 1 -an -f null /dev/null && \ | ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 1 -an -f null /dev/null && \ | ||
Zeile 37: | Zeile 40: | ||
* -pass 1 = erster Durchgang | * -pass 1 = erster Durchgang | ||
* -pass 2 = zweiter Durchgang | * -pass 2 = zweiter Durchgang | ||
- | * -an = Audio auslassen (im ersten Durchgang) | + | * -an = Audio auslassen (im ersten Durchgang) |
* -f = format | * -f = format | ||
* null /dev/null [Linux] = Null Muxer (ohne Datei-Ausgabe), | * null /dev/null [Linux] = Null Muxer (ohne Datei-Ausgabe), | ||
- | * -c:a = audio codec opus | + | * -c:a libopus |
===== video/ | ===== video/ | ||
Fall 1: audio beginnt vor video (150 ms = 0.15 s) | Fall 1: audio beginnt vor video (150 ms = 0.15 s) | ||
<code bash> | <code bash> | ||
- | ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -vcodec | + | 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) | Fall 2: video beginnt vor audio (150 ms = 0.15 s) | ||
<code bash> | <code bash> | ||
- | ffmpeg -i video.mp4 -itsoffset 0.150 -i video.mp4 -vcodec | + | 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 |
</ | </ | ||
Zeile 61: | Zeile 64: | ||
===== video schneiden ===== | ===== video schneiden ===== | ||
- | <code bash> | + | <code bash> |
+ | oder | ||
+ | <code bash> | ||
+ | |||
+ | ===== audio file einem video hinzufügen ===== | ||
+ | |||
+ | < | ||
+ | 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: | ||
+ | -metadata: | ||
+ | OUT-video-EN-DE.mp4 | ||
+ | </ | ||
+ | |||
+ | Das '' | ||
Zeile 67: | Zeile 89: | ||
* [[https:// | * [[https:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
==== videoformate 16:9 ==== | ==== videoformate 16:9 ==== | ||
Zeile 85: | Zeile 108: | ||
320 x 180 | 320 x 180 | ||
192 x 108 | 192 x 108 | ||
+ | </ | ||
+ | |||
+ | ===== Transkodieren mit allen Streams ===== | ||
+ | |||
+ | entscheidend ist '' | ||
+ | |||
+ | <code bash> | ||
+ | ffmpeg -i input.mkv -c copy -map 0 output.mp4 | ||
+ | </ | ||
+ | |||
+ | oder mit h264 transcode-Einstellungen | ||
+ | |||
+ | <code bash> | ||
+ | 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 | ||
+ | </ | ||
+ | |||
+ | ===== Untertitel einbinden ===== | ||
+ | |||
+ | < | ||
+ | |||
+ | |||
+ | ffmpeg -i infile.mp4 -i infile.srt -c copy -c:s mov_text outfile.mp4 | ||
+ | |||
</ | </ |