
背景
指定された時間範囲(最初の 30 秒、20 ~ 55 秒など)の Youtube 動画から最高品質の mp3 をダウンロードし、それらを結合して 1 つの出力ファイルを作成しようとしています。使用しているツールはyoutube-dl
、fmpeg
Mac では、です。
ステップ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
質問
- どうすれば修正できますか? エンコードに問題があるようです。
- ステップ 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
このコマンドで他の問題も解決するかどうかをお知らせください。