Der Martin: Argumente für ffmpeg +Wahl des Tonkanals

Beitrag lesen

Hallo,

Ich habe inzwischen gelernt, dass es ohne Parameter nicht in allen Fällen geht (Der Ton ist manchmal “zerhackstückt“)

Probleme mit dem Ton hatte ich dann und wann auch schon mal. Aber ich kann mich nicht an Details erinnern.

args='async 1 -b 2000k -ar 44100 -ac 2 -v 0 -f mp4 -vcodec libx264'
nice -n 19 ffmpeg -n -i  "${inputFile}" $args "${outputFile}"

Ich bin mir aber nicht sicher, ob die optimal sind.

Fehlt nicht ein Minus vor dem async? Anyway, optimal ... kommt auf die Erwartungen, das Zielformat (Video-Auflösung) und das Rohmaterial an. Meine Versuche haben mich bei Full-HD zu einer Video-Bitrate von 2500k, bei Semi-HD zu 1600k und bei Standard-TV-Auflösung zu 1200k gebracht. Du gibst 2000k als Brutto-Bitrate an, das schließt Audio mit ein. Möchtest du das vielleicht auf -b:v 2000k präzisieren? Den Parameter -ac 2 kannst du vermutlich weglassen, dann hat die Zieldatei eben genauso viele Kanäle wie die Quelle.

Frage: Von Arte mitgeschnittene Sendungen haben nach der Umwandlung französischen Ton. Das hier kenne ich zwar, aber hat dafür schon jemand schon jemand eine Lösung?

Für welches Problem? Ich vermute, der Mitschnitt von arte hat zwei Audio-Streams und der französische ist halt der erste und wird automatisch ausgewählt. Zeig mal die Ausgabe von

ffmpeg -i <source-video> -hide_banner

Das zeigt dir den kompletten technischen Steckbrief der Videodatei an und sieht bei mir (Beispiel: "Wer weiß denn sowas" vom 19.12.2022 aus der ARD-Mediathek) etwa so aus:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '20221219.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 1
    compatible_brands: mp42iso2avc1isom
    creation_time   : 2022-12-18 16:54:42
  Duration: 00:45:14.12, start: 0.000000, bitrate: 1301 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 960x540 [SAR 1:1 DAR 16:9], 1167 kb/s, 50 fps, 50 tbr, 12800 tbn, 100 tbc (default)
    Metadata:
      handler_name    : Hessischer Rundfunk mp4toolbox 1.12.2
      encoder         : Lavc59.37.100 libx264
    Stream #0:1(deu): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
    Metadata:
      handler_name    : Hessischer Rundfunk mp4toolbox 1.12.2

Bei deinem arte-Mitschnitt tauchen zum Schluss vermutlich zwei Audio-Streams auf, einer mit fra und einer mit deu. Welchen du davon haben willst, gibst du ffmpeg mit dem Parameter -map 0:a:0 oder -map 0:a:1 an. Dann muss aber ein zweiter map-Parameter mit -map 0:v:0 dazu, sonst wird die Video-Spur ignoriert! Sobald man -map verwendet, muss man alle Streams angeben, die man in der Ausgabe haben möchte.

Einen schönen Tag noch
 Martin

--
"Malen nach Zahlen" sagten wir im Matheunterricht, wenn es bei der Kurvendiskussion hieß: Zeichnen Sie den Graphen der Funktion ...