====== ffmpeg ======
===== Streams auslesen =====
ffmpeg -i Videodatei
gibt alle enthaltenen Streams aus. Z.B.:
Stream #0:0[0x1011]: Video: h264 (High) (HDMV / 0x564D4448), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 90k tbn, 47.95 tbc
Stream #0:1[0x1100]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:2[0x1101]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:3[0x1102]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:4[0x1103]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:5[0x1104]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:6[0x1105]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:7[0x1106]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:8[0x1107]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:9[0x1108]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:10[0x1109]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:11[0x110a]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:12[0x110b]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:13[0x110c]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:14[0x110d]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:15[0x110e]: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 192 kb/s
Stream #0:16[0x1200]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:17[0x1201]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:18[0x1202]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:19[0x1203]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
Stream #0:20[0x1204]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
Stream #0:21[0x1205]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090)
Stream #0:22[0x1206]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
Stream #0:23[0x1207]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
Stream #0:24[0x1208]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
Stream #0:25[0x1209]: Subtitle: hdmv_pgs_subtitle ([144][0][0][0] / 0x0090), 1920x1080
* Stream 0:0 ist der Videostream
* Stream 0:1 - 0:15 sind Audiostreams
* Stream 0:16 - 0:25 sind Untertitel
===== Video konvertieren =====
==== nach h265 ====
Wir möchten den Videostream nach h265 konvertieren, sowie die 2. Tonspur 1:1 übernehmen
#!/bin/bash
mkdir konvertiert
for film in *.mkv
do
ffmpeg -i "$film" -map 0:0 -map 0:2 -c:v libx265 -crf 28 -preset slower -c:a:0 copy "./konvertiert/$film.mkv"
# | | | | | | | | | | | | | |
# Quellfilm ----' | | | | | | | | | | | | |
# Mapping aktivieren ---' | | | | | | | | | | | |
# videospur ---------------' | | | | | | | | | | |
# Mapping -----------------------' | | | | | | | | | |
# 2. Tonspur -----------------------' | | | | | | | | |
# Videospur waehlen ----------------------' | | | | | | | |
# enkodieren in h265 --------------------------' | | | | | | |
# Qualitaetswert: kleiner ist besser ----------------' | | | | | |
# Qualitaetswert --------------------------------------' | | | | |
# Preset: langsamer ist besser -------------------------------' | | | |
# langsamer fuer bessere Qualitaet bei geringer Groesse -------------' | | |
# Audiospur waehlen -----------------------------------------------------------' | |
# Audiospur 1:1 kopieren ----------------------------------------------------------' |
# Ausgabedatei: Endung ist wichtig! Containerformat wird anhand Dateiendung festgelegt! ---------'
done
===== Audio- / Videoversatz =====
https://superuser.com/questions/982342/in-ffmpeg-how-to-delay-only-the-audio-of-a-mp4-video-without-converting-the-au
Video um 3.84 Sekunden verzögern:
ffmpeg -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 1:v -map 0:a -c copy "movie-video-delayed.mp4"
Audio um 3.84 Sekunden verzögern:
ffmpeg -i "movie.mp4" -itsoffset 3.84 -i "movie.mp4" -map 0:v -map 1:a -c copy "movie-audio-delayed.mp4"
===== falsches Bildseitenverhältnis =====
https://superuser.com/questions/907933/correct-aspect-ratio-without-re-encoding-video-file
Um das Bildseitenverhältnis eines Videos zu ändern, ohne es zu reencodieren, kann der DAR angepasst werden.
Dies kann z.B. bei TV-Aufnahmen nötig sein, da 16:9-Videos im PAL-Format gestaucht als 4:3 übertragen werden.
ffmpeg -i video.mp4 -aspect 16:9 -c copy video16_9.mp4
Das Video hat danach immer noch 4:3 Auflösung, wird aber beim Abspielen auf 16:9 gestreckt.