Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
howto:ffmpeg [2020/12/06 17:22] – ffmpeg renamed to howto:ffmpeg andi | howto:ffmpeg [2023/06/11 00:58] (current) – [audio channel mapping / repair] andi | ||
---|---|---|---|
Line 36: | Line 36: | ||
make install </ | make install </ | ||
- | == audio channel mapping doku | + | == HD-Master mit Loudnorm |
- | + | ||
- | https:// | + | |
- | + | ||
- | + | ||
- | + | ||
- | == silent fix | + | |
< | < | ||
- | ffmpeg -ar 48000 -acodec pcm_s16le | + | ffmpeg -y \ |
- | </ | + | -i / |
- | + | -ss 1858.48 -t 3550.88 | |
- | Oder " | + | -i /video/ |
+ | -filter_complex ' | ||
+ | [0:a:0] loudnorm=i=-16: | ||
+ | [1:a:0] loudnorm=i=-16: | ||
+ | [2:a:0] loudnorm=i=-16: | ||
- | < | + | [0:v:0] [norm-0-0] [1:v:0] [norm-1-0] [2:v:0] [norm-2-0] concat=n=3:v=1:a=1 [vd] [audio0_mix]; |
- | ffmpeg | + | [vd] yadif=mode=0:parity=0, hqdn3d |
+ | ' -analyzeduration 20000000/ | ||
+ | -map '[v]' | ||
+ | -map '[audio0_mix]' | ||
+ | -aspect 16:9 -movflags faststart -f mp4 / | ||
</ | </ | ||
- | $audiocodec z.B. mp2 bei Intros | ||
- | == metadata fix | ||
- | === map metadata and fix spezific entry | + | === HD-Master mit Loudnorm, Pause rausschneiden |
+ | - Zeitstempel = *Sekunden.Frames* | ||
+ | - -t gibt Duration an, nicht Ende! | ||
< | < | ||
- | ffmpeg -i br0ken_licence/$file \ | + | ffmpeg |
- | -map_metadata 0 \ | + | -i /video/ |
- | -metadata: | + | -ss 1858.48 -t 3550.88 -i / |
- | -c:a copy $file | + | -ss 1858.48 -t 3550.88 -i /video/fuse//XXX/YYY/ZZZ/uncut.ts |
- | </ | + | -i /video/intros/ |
+ | -filter_complex ' | ||
+ | | ||
+ | [1:a:0] loudnorm=i=-16: | ||
+ | | ||
+ | [3:a:0] loudnorm=i=-16: | ||
- | === copy metadata from another file | + | [0:v:0] [norm-0-0] [1:v:0] [norm-1-0] [2:v:0] [norm-2-0] [3:v:0] [norm-3-0] concat=n=4:v=1:a=1 [vd] [audio0_mix]; |
- | + | [vd] yadif=mode=0: | |
- | < | + | ' -analyzeduration 20000000/ |
- | ffmpeg | + | -map ' |
+ | -map ' | ||
+ | -aspect 16:9 -movflags faststart -f mp4 / | ||
</ | </ | ||
- | == one input, multiple format outputs | ||
- | |||
- | 1. h264/aac flv rtmp output | ||
- | 2. theora/ | ||
- | |||
- | < | ||
- | ffmpeg -re -i 29c3-5266-de-en-proximax_telex_flashproxy_h264.mp4 -threads 0 -pix_fmt yuv420p -profile:v baseline -preset fast -tune zerolatency -c:v libx264 -strict -2 -c:a aac \ | ||
- | -f flv rtmp:// | ||
- | -map 0 -c:v libtheora -c:a libvorbis -f ogg - | oggfwd localhost 8000 … | ||
- | </ | ||
- | |||
- | == Audiospur via Backup Audioaufnahme reparieren und in MP4 packen | ||
- | |||
- | Sprache deu-backup im Tracker anlegen. | ||
- | Nochmal neu rausrendern lassen. | ||
- | |||
- | einzelne Audiopuren vor oder nach Auphnic so umwandeln das Audio-Schnitt Tool wie z.B. Reaper was damit anfangen kann: | ||
- | |||
- | ffmpeg -i 5100-hd-audio2-auphonic.m4a -vn -c:a copy -bsf:a aac_adtstoasc 5100-hd-audio2-auphonic-echt.m4a | ||
- | ffmpeg -i 5100-hd-audio2-auphonic.m4a -vn -c:a copy -bsf:a aac_adtstoasc 5100-hd-audio2-auphonic-echt.m4a | ||
- | |||
- | |||
- | Fertige Audiospur in Reaper rausrechnen, | ||
- | |||
- | Audiospur wieder in Vortrag MP4 einpacken: | ||
- | |||
- | < | ||
- | ffmpeg -threads 0 -i / | ||
- | </ | ||
- | |||
- | Alte Version | ||
- | < | ||
- | ffmpeg -threads 0 -i 5100-hd.mp4 | ||
- | </ | ||
- | |||
- | |||
- | Anmerkung: Geht auch mit MTS Datei (Transportstream mit H264 Video) der so aus der Consumer-Kamera auf die SD Karte fällt. | ||
- | |||
- | Siehe auch: https:// | ||
- | == Audiospur(en) und Videospur vertauscht | ||
- | < | ||
- | ffmpeg -i 5115-hd-broken.mp4 -map 0:v -map 0:a -c copy -map_metadata 0 5115-hd.mp4 | ||
- | </ | ||
- | |||
- | == Translated Transcoding | ||
- | |||
- | < | ||
- | ffmpeg -y -i rtmp:// | ||
- | </ | ||
== encoding snippets | == encoding snippets | ||
Line 133: | Line 93: | ||
-metadata title="< | -metadata title="< | ||
-metadata album="< | -metadata album="< | ||
- | -metadata copyright=" | + | -metadata copyright=" |
< | < | ||
</ | </ | ||
Line 146: | Line 106: | ||
-c:a libfdk_aac -b:a 192k -aspect 16:9 -metadata title="< | -c:a libfdk_aac -b:a 192k -aspect 16:9 -metadata title="< | ||
-metadata album="< | -metadata album="< | ||
- | -metadata copyright=" | + | -metadata copyright=" |
-f mp4 -movflags faststart < | -f mp4 -movflags faststart < | ||
</ | </ | ||
Line 198: | Line 158: | ||
-c:a mp3 -b:a 32k -ar:a 22050 -f mp4 -movflags faststart \ | -c:a mp3 -b:a 32k -ar:a 22050 -f mp4 -movflags faststart \ | ||
/ | / | ||
+ | </ | ||
+ | |||
+ | |||
+ | == one input, multiple format outputs | ||
+ | |||
+ | 1. h264/aac flv rtmp output | ||
+ | 2. theora/ | ||
+ | |||
+ | < | ||
+ | ffmpeg -re -i 29c3-5266-de-en-proximax_telex_flashproxy_h264.mp4 -threads 0 -pix_fmt yuv420p -profile:v baseline -preset fast -tune zerolatency -c:v libx264 -strict -2 -c:a aac \ | ||
+ | -f flv rtmp:// | ||
+ | -map 0 -c:v libtheora -c:a libvorbis -f ogg - | oggfwd localhost 8000 … | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Translated Transcoding | ||
+ | |||
+ | < | ||
+ | ffmpeg -y -i rtmp:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | == Audiospur via Backup Audioaufnahme reparieren und in MP4 packen | ||
+ | |||
+ | Sprache deu-backup im Tracker anlegen. | ||
+ | Nochmal neu rausrendern lassen. | ||
+ | |||
+ | einzelne Audiopuren vor oder nach Auphnic so umwandeln das Audio-Schnitt Tool wie z.B. Reaper was damit anfangen kann: | ||
+ | |||
+ | ffmpeg -i 5100-hd-audio2-auphonic.m4a -vn -c:a copy -bsf:a aac_adtstoasc 5100-hd-audio2-auphonic-echt.m4a | ||
+ | ffmpeg -i 5100-hd-audio2-auphonic.m4a -vn -c:a copy -bsf:a aac_adtstoasc 5100-hd-audio2-auphonic-echt.m4a | ||
+ | |||
+ | |||
+ | Fertige Audiospur in Reaper rausrechnen, | ||
+ | |||
+ | Audiospur wieder in Vortrag MP4 einpacken: | ||
+ | |||
+ | < | ||
+ | ffmpeg -threads 0 -i / | ||
+ | </ | ||
+ | |||
+ | Alte Version | ||
+ | < | ||
+ | ffmpeg -threads 0 -i 5100-hd.mp4 | ||
+ | </ | ||
+ | |||
+ | |||
+ | Anmerkung: Geht auch mit MTS Datei (Transportstream mit H264 Video) der so aus der Consumer-Kamera auf die SD Karte fällt. | ||
+ | |||
+ | Siehe auch: https:// | ||
+ | |||
+ | |||
+ | == Audiospur(en) und Videospur vertauscht | ||
+ | < | ||
+ | ffmpeg -i 5115-hd-broken.mp4 -map 0:v -map 0:a -c copy -map_metadata 0 5115-hd.mp4 | ||
+ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == audio channel mapping / repair | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | === mono mixdown | ||
+ | |||
+ | ffmpeg -i 27-hd-orig.mp4 -codec:v copy -map_metadata 0 -ac 1 -ab 128k 27-hd.mp4 | ||
+ | |||
+ | |||
+ | === silent fix | ||
+ | < | ||
+ | ffmpeg -ar 48000 -acodec pcm_s16le -f s16le -ac 2 -i <( dd if=/ | ||
+ | </ | ||
+ | |||
+ | Oder " | ||
+ | |||
+ | < | ||
+ | ffmpeg -i not_silent/ | ||
+ | </ | ||
+ | $audiocodec z.B. mp2 bei Intros | ||
+ | |||
+ | |||
+ | == metadata fix | ||
+ | |||
+ | === map metadata and fix specific entry | ||
+ | |||
+ | < | ||
+ | ffmpeg -i br0ken_licence/ | ||
+ | -map_metadata 0 \ | ||
+ | -metadata: | ||
+ | -c:a copy $file | ||
+ | </ | ||
+ | |||
+ | === copy metadata from another file | ||
+ | |||
+ | < | ||
+ | ffmpeg -i $metadata_source -i $video_source -map 1 -c copy -map_metadata 0 $output_file | ||
</ | </ | ||
Line 214: | Line 272: | ||
" -map ' | " -map ' | ||
| | ||
- | === HD-Master mit Loudnorm | ||
- | < | ||
- | ffmpeg -y \ | ||
- | -i / | ||
- | -ss 1858.48 -t 3550.88 -i / | ||
- | -i / | ||
- | -filter_complex ' | ||
- | [0:a:0] loudnorm=i=-16: | ||
- | [1:a:0] loudnorm=i=-16: | ||
- | [2:a:0] loudnorm=i=-16: | ||
- | [0:v:0] [norm-0-0] [1:v:0] [norm-1-0] [2:v:0] [norm-2-0] concat=n=3: | ||
- | [vd] yadif=mode=0: | ||
- | ' -analyzeduration 20000000/ | ||
- | -map ' | ||
- | -map ' | ||
- | -aspect 16:9 -movflags faststart -f mp4 / | ||
- | </ | ||
- | |||
- | === HD-Master mit Loudnorm, Pause rausschneiden | ||
- | - Zeitstempel = *Sekunden.Frames* | ||
- | - -t gibt Duration an, nicht Ende! | ||
- | |||
- | < | ||
- | ffmpeg -y \ | ||
- | -i / | ||
- | -ss 1858.48 -t 3550.88 -i / | ||
- | -ss 1858.48 -t 3550.88 -i / | ||
- | -i / | ||
- | -filter_complex ' | ||
- | [0:a:0] loudnorm=i=-16: | ||
- | [1:a:0] loudnorm=i=-16: | ||
- | [2:a:0] loudnorm=i=-16: | ||
- | [3:a:0] loudnorm=i=-16: | ||
- | |||
- | [0:v:0] [norm-0-0] [1:v:0] [norm-1-0] [2:v:0] [norm-2-0] [3:v:0] [norm-3-0] concat=n=4: | ||
- | [vd] yadif=mode=0: | ||
- | ' -analyzeduration 20000000/ | ||
- | -map ' | ||
- | -map ' | ||
- | -aspect 16:9 -movflags faststart -f mp4 / | ||
- | </ | ||
=== Icecast-Audio mit ffmpeg | === Icecast-Audio mit ffmpeg | ||