2013-03-06 214 views
12

我知道有一百萬種方法可以從YouTube上下載視頻,然後將其轉換爲音頻或對其進行進一步處理。但是最近我很驚訝地看到一個名爲YoutubeToMp3的應用程序在Mac上實際上顯示「跳過XMB視頻」,並且應該只從視頻中下載音頻,而不需要使用帶寬下載整個視頻並將其轉換。我想知道這是否真的是正確和可能的,因爲我找不到任何方法來做到這一點。你有什麼想法 ?僅從YouTube視頻下載音頻

編輯: 經過一些測試後,這裏是關於這個主題的一些額外的信息。我試圖從獲得的音頻視頻是剛剛從互聯網上一個樣本的MP4文件:

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

我試圖

的ffmpeg -i 「輸入」 out.mp3

FFMPEG -i 「輸入」 -vn out.mp3

的ffmpeg -i「輸入」 -vn -ac 2 -Ar 44100 -ab 320K -f MP3 output.mp3

的ffmpeg -i「輸入」 -vn -acodec副本output.mp3

這些命令中的不幸不似乎是使用較少的帶寬。他們都下載整個視頻。現在你已經有了視頻,你可以確認是否有一個命令只下載音頻流並降低帶寬使用率?謝謝!

+0

服務器可能允許您在下載時查找。即如果下載鏈接是可搜索的,那麼爲什麼不呢。 – sashoalm 2013-03-06 07:24:38

+0

此YoutubeToMp3應用程序是否使用FFmpeg作爲後端?嘗試捕獲並查看它傳遞給FFmpeg的命令行參數。 – sashoalm 2013-03-06 08:31:59

+0

如果您使用JDownloader打開YouTube網址,它會向您建議多次下載,每個分辨率,圖片和MP3的FLV文件;) – 2013-03-06 12:50:01

回答

13

經過大量的研究,我發現這是不可能的,開發商的另一種方法:

  1. 下載MP4頭
  2. 解析頭,並獲得音頻字節
  3. 下載的位置具有http範圍請求和偏移量的音頻字節
  4. 組裝音頻字節並將它們包裝在簡單的ADTS容器中以產生播放m4a文件

這種方式僅使用音頻字節的帶寬。如果您發現更好的方法,請讓我知道。

對於一個樣本Android應用和實施退房:

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 54. 59.100/54 59.100 了libavformat 54. 29.104/54 29.104 libavdevice 54 2.101/54 2.101 libavfilter 3. 17.100/17.100 3. libswscale 2. 1.101/1.101 2 libswresample 0 15.100/0 。15.100 libpostproc 52. 0.100/52. 0.100 – Feras 2013-03-06 08:14:42

+0

那麼至少使用FFmpeg是這樣做的。你問如何只轉換音頻。這就是如何。它應該工作,但當然可能有錯誤。嘗試在自己的郵件列表中填寫錯誤或自行調試。 – sashoalm 2013-03-06 08:18:48

+0

這絕對不適用於YouTube。 FFmpeg需要一個實際的文件作爲輸入,而不是YouTube網址。這不是它要分析的意思。如果鏈接指向有效的視頻流或文件,那麼它應該可以工作,但YouTube將視頻嵌入爲Flash,所以FFmpeg無法解析該視頻,除非他們明確支持YouTube。像'youtube-dl'這樣的工具在這方面做得更好。 – slhck 2013-03-24 20:50:41

-2

嘛,現在它可以下載YouTube視頻的只有聲音爲我用這個 youtube 2 mp3 api

它的工作原理很對我來說很好。所有你需要把youtube id,就是這樣。