7

YouTube でさまざまな無料の音楽チャンネルを購読しています。.net プログラムに youtube-dl.exe を埋め込んで、チャンネルを監視し、チャンネルに投稿された曲をダウンロードして変換することを検討しています。プログラムのその部分は動作しましたが、youtube-dl によって生成される mp3 ファイルに問題があるようです。ファイルは VLC および Windows Media Player で再生されますが、Audacity や Wavepad などのエディターでファイルを開こうとすると、ファイルが再生されず、ファイルを開くときに次のエラーが表示されました。 : MEPG ヘッダーとして読み取られるデータは、持続時間がゼロであることを示します。エディターで再生すると、曲の長さに応じて 1 秒から数秒の間、ノイズや歪んだ音が一瞬再生され、トラックは再生が完了したものとして表示されます。

この問題は、ID3 タグにも影響しているようです。ID3 タグが埋め込まれるとすぐに、ファイルが 1 秒間再生されたように見え、その後 Windows Media Player で完了が表示され、VLC では無音で再生されます。ただし、ID3 タグ情報が取得されるため、ファイルが破損することはなく、ID3 フレームを削除すると、曲を再び再生できるようになりますが、他の問題は修正されません。

私が使用している引数は次のとおりです: youtube-dl.exe videoURL-x --audio-format mp3 -o "path/filename.mp3"

執筆時点で最新バージョン: 2015-03-24 を使用しており、--update フラグを使用し、破損した exe を除外するために新しいコピーをダウンロードしました。

ffprobe.exe と ffmpeg.exe の 32 ビット バージョンと 64 ビット バージョンの両方を試し、それぞれの新しいコピーをダウンロードして、破損した exe を除外しました。

プログラムとコマンドラインの両方を使用してダウンロードしましたが、結果は同じでした

1つの動画だけではないので、いろいろな曲を試してみました

他のソフトウェアで作成した曲で ID3 埋め込みソフトウェアをテストしましたが、問題なく動作しました。

この問題についてご協力いただけると幸いです。

4

1 に答える 1

14

他の誰かが同じ問題に遭遇した場合に備えて、ここに投稿しています。問題は、-o テンプレートでファイルのパス全体を指定していたことです。パスは -o "c:\music\filename.mp3" のようになり、テンプレートを -o "c:\music\filename.%(ext)s" に変更して問題を修正しました。%(ext)s は、ファイル拡張子を出力するために出力テンプレートで使用できる特別なフィールドです。

これによりエラーが発生した理由は、変換の操作の順序によるものです。まず、ファイルがビデオ形式でダウンロードされ、ハード ドライブに保存されます。その後、.mp3 に変換され、ソース ファイルが削除されます。

私のテンプレートが原因で、ビデオ ファイルは実際のビデオ形式に関係なく video_name.mp3 として保存され、変換されたファイルはこのビデオ「mp3」を上書きしていました。願わくば、この説明が、将来私が抱えていた同じ問題を他の誰かが救うことを願っています.

于 2015-04-02T00:58:14.643 に答える