2013-03-06 8 views
12

私はyoutubeからビデオをダウンロードし、それをオーディオに変換したり、さらに処理する方法が100万あることを知っています。しかし、最近私はMac上でYoutubeToMp3という名前のアプリを見て、ビデオ全体をダウンロードして変換するためにバンド幅を使用する必要はなく、ビデオのオーディオをダウンロードするだけであると言っていました。私はこれを行う方法が見つからないため、これが実際に正しいのかどうかは疑問でした。あなたはなにか考えはありますか ?YouTubeのビデオのみをダウンロードする

EDIT: いくつかのテストの後、トピックに関する追加情報があります。私は-i "入力" out.mp3

ffmpegのを試してみました

http://download.wavetlan.com/SVV/Media/HTTP/MP4/ConvertedFiles/MediaCoder/MediaCoder_test6_1m9s_XVID_VBR_306kbps_320x240_25fps_MPEG1Layer3_CBR_320kbps_Stereo_44100Hz.mp4

:私はからオーディオを取得しようとしたビデオは、インターネットからちょうどサンプルmp4ファイルですffmpegの-i "入力" -vn out.mp3

ffmpegの-i「入力」-vn -ac 2 -Ar 44100 -AB 320K -f

output.mp3 -acodecコピー-vn mp3 output.mp3

のffmpeg -i「入力」は残念ながら、これらのコマンドの非は少ない帯域幅を使用しているようです。彼らはすべてビデオ全体をダウンロードします。これで、ビデオからオーディオストリームのみをダウンロードし、帯域幅を使用率を下げるコマンドが実際にあるかどうかを確認できます。ありがとう!

+0

おそらく、サーバーはダウンロード時に探すことができます。私。ダウンロードリンクがシーク可能な場合は、なぜそうしないのですか? – sashoalm

+0

このYoutubeToMp3アプリはFFmpegをバックエンドとして使用しますか? FFmpegに渡すコマンドライン引数をキャプチャしてみてください。 – sashoalm

+0

JDownloaderでYouTube URLを開くと、いくつかのダウンロード、各解像度、写真、MP3のための1つのFLVファイルが提案されます) –

答えて

13

  1. MP4ヘッダ
  2. は、ヘッダを解析し、オーディオバイト
  3. ダウンロードの場所を取得するダウンロードhttp範囲要求とオフセットを持つオーディオバイト
  4. オーディオバイトを組み立て、簡単なADTSコンテナにラップして、再生m4aファイルを生成します。

この方法では、オーディオバイトの帯域幅のみが使用されます。あなたがそれを行うより良いアプローチを見つけるなら、私に知らせてください。サンプルのAndroid APPおよび実装のために

チェックアウト:

https://github.com/feribg/audiogetter/blob/master/audiogetter/src/main/java/com/github/feribg/audiogetter/tasks/download/VideoTask.java

2

FFmpegは入力としてURLを受け入れることができます。 URLがシーク可能な場合、FFmpegは理論的にすべてのビデオフレームをスキップすることができます。したがって、オーディオストリーム用のデータだけをダウンロードする必要があります。

ffmpeg -i http://myvideo.avi out.mp3 

を使用して試してみて、それがより少ない帯域幅を取るかどうかを確認します。私は、これは別のアプローチが可能と開発者ではありませんが分かった多くの研究の後

+0

作業を開始し、フリーズします: libavutil 51. 73.101/51. 73.101 libavcodec 0 15.100/0 libswresample 54 59.100/54 59.100 はlibavformat 54 29.104/54 29.104 libavdevice 54 2.101/2.101 54 にlibavfilter 3 17.100/17.100 3 libswscale 2. 1.101/2 1.101 。15.100 libpostproc 52. 0.100/52. 0.100 – Feras

+0

これは、少なくともFFmpegを使って行う方法です。あなたはどのようにオーディオだけを変換するのか尋ねました。そうです。それはうまくいくはずですが、もちろんバグがあるかもしれません。自分のメーリングリストにバグを報告するか、自分でデバッグしてみてください。 – sashoalm

+0

これはYouTubeではうまくいかないでしょう。 FFmpegは実際のファイルがYouTubeのURLではなく、入力として期待されます。それは解析する意味ではありません。リンクが有効なビデオストリームまたはファイルを指している場合、YouTubeはそのビデオをFlashとして埋め込みますので、FFmpegが解析する方法はありません。 'youtube-dl'のようなツールはこれではるかに良い仕事をします。 – slhck

-2

をまあ、今その可能ユーチューブビデオの音声だけをダウンロードし、そのために私はこの youtube 2 mp3 api

を使用することは非常に動作しますよく私のために。あなたはyoutube idを置く必要があります。それだけです。

関連する問題