web-dev-qa-db-ja.com

YouTube DASHオーディオ(youtube-dl)をm4a(AAC DL)に変換します

Winampでyoutube-dlを介してYouTubeからダウンロードしたm4a DASHオーディオを聴くことができません。 youtube-dlにm4aファイルのDASHオーディオ部分を削除し、品質を損なうことなくm4a(AAC LC)としてダウンロード/保存するオプションはありますか?これまでのところ、私はffmpeg -i input.m4a -vn -acodec copy output.m4a各ファイルを変換して、Winampで正しく再生されるようにします。

7
Sun

youtube-dl 2015.01.23.4以降では、ffmpegがシステムに存在する場合、m4aファイルのヘッダーが自動的に修正されます。

ソース: youtube-dl:--extract-audioでダウンロードしたYoutube m4aファイルは一部のプレーヤーで再生できない
行う必要があるのは、ffmpegバイナリを含むディレクトリへのパスを システムパス変数 に追加することだけです(Windows 7の場合と同様)。

または、--ffmpeg-location <path to ffmpeg binary or its containing directory> youtube-dlを呼び出すときのコマンドライン引数。ffmpegを介してyoutube-dlがこれを自動的に修正できるようにします。

5
galacticninja

いいえ、2番目の変換ステップが必要です。

問題は、YouTube DASHの場合、MP4コンテナのftypの「主要ブランド」がm4aではなくdashに設定されていることです。これはDASHストリーミングの正しいアプローチですが、Winampは古すぎて認識できません(他の多くのプログラムもそうです)。

さて、合理的な提案は、youtube-dlに機能リクエストを作成して、ffmpegの後処理サポートを追加し、MP4コンテナの主要ブランドをより互換性のあるものに変換することです。しかし、現時点では、そのようなことは存在しません。

または、Winampにバグレポートを提出して、dashブランドのデコードサポートを含めます。サードパーティのデコーダプラグインに依存している可能性が高いため、おそらく別の場所にバグレポートを提出することも意味します。

6
slhck

私はあなたのffmpegコマンドを自由に使用しましたが、これは私が得たものです:yt "My Youtube File.mp4"

System32に配置されたファイルyt.batには以下が含まれます。

@echo off
mv %1 "_%~n1"
ffmpeg -i "_%~n1" -vn -c:a copy "%~n1.m4a"
rm "_%~n1"

*自動的にm4aに名前が変更されます。これはコードで変更できます。

**一時ファイルを経由してからrm、mvを使用する必要があります。そうしないと、ファイルとファイル名が破損します。

1
Qwerty