Herunterladen und Zusammenführen von MP3s im Zeitbereich von YouTube mithilfe von YouTube-DL und FFMPEG

Herunterladen und Zusammenführen von MP3s im Zeitbereich von YouTube mithilfe von YouTube-DL und FFMPEG

Hintergrund

Ich versuche, MP3s in bester Qualität von YouTube-Videos in einem bestimmten Zeitbereich (erste 30 Sekunden, 20-55 Sekunden usw.) herunterzuladen und sie dann zu einer Ausgabedatei zusammenzufügen. Verwendete Tools sind youtube-dlund fmpegauf dem Mac.

Schritt 1

youtube-dlBefehl zum Herunterladen von Audio im Zeitbereich:

youtube-dl -f bestaudio --extract-audio --audio-format mp3 --audio-quality 0 <YoutubeUrl> --no-check-certificate --output "1.mp3" --external-downloader ffmpeg --external-downloader-args "-ss 00:00:00.00 -to 00:00:56.00"

Schritt 2

Ausgabedateinamen nach input.txt:

file '1.mp3'
file '2.mp3'

Schritt 3

ffmpegBefehl zum Zusammenführen aller MP3-Dateien:

ffmpeg -f concat -safe 0 -i input.txt -c copy output.mp3 -c:a libmp3lame

Ausgabe

Beim Zusammenführen von MP3-Dateien tritt der folgende Fehler auf:

[mp3 @ 0x7fdd4e812600] Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument

Fragen

  1. Wie behebe ich das? Es scheint, als gäbe es ein Problem mit der Kodierung.
  2. Gibt es eine Empfehlung zum Kombinieren von Schritt 2 und Schritt 3 in einem Befehl?

Antwort1

Sie können concatFilter verwenden, um Ihre Schritte 2 und 3 in einem Befehl zu kombinieren:

ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1[a]" -map "[a]" -c:a libmp3lame output.mp3

Lassen Sie mich wissen, ob dieser Befehl auch Ihr anderes Problem behebt.

verwandte Informationen