====== 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.