youtube-dl と ffmpeg を使用して YouTube から時間範囲内の mp3 をダウンロードして結合する

youtube-dl と ffmpeg を使用して YouTube から時間範囲内の mp3 をダウンロードして結合する

背景

指定された時間範囲(最初の 30 秒、20 ~ 55 秒など)の Youtube 動画から最高品質の mp3 をダウンロードし、それらを結合して 1 つの出力ファイルを作成しようとしています。使用しているツールはyoutube-dlfmpegMac では、です。

ステップ1

youtube-dl時間範囲内のオーディオをダウンロードするためのコマンド:

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"

ステップ2

出力ファイル名input.txt:

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

ステップ3

ffmpegすべての mp3 ファイルを結合するコマンド:

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

問題

mp3 ファイルを結合すると、以下のエラーが表示されます:

[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

質問

  1. どうすれば修正できますか? エンコードに問題があるようです。
  2. ステップ 2 とステップ 3 を 1 つのコマンドに結合するための推奨事項はありますか?

答え1

concatフィルターを使用すると、手順 2 と 3 を 1 つのコマンドにまとめることができます。

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

このコマンドで他の問題も解決するかどうかをお知らせください。

関連情報