2013-03-06 15 views
12

Youtube'dan bir video indirmek için milyonlarca yol olduğunu biliyorum ve sonra bunu sese dönüştürün veya daha fazla işlem gerçekleştirin. Ama son zamanlarda ben aslında videonun tamamını indirmek ve daha sonra dönüştürmek için bant genişliği kullanmak gerek kalmadan video, sadece videodan ses indirme, "Videonun X mb atlama" gösteren mac üzerinde YoutubeToMp3 adlı bir uygulama görmek şaşırdı. Bunun gerçekten doğru ve mümkün olup olmadığını merak ediyorum çünkü bunu yapmanın bir yolunu bulamıyorum. Hiç fikrin var mı ?Youtube videosundan SADECE ses indirin

DÜZENLEME: Bazı testlerden sonra bu konu hakkında bazı ek bilgiler.

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

Ben

out.mp3

ffmpeg -i "giriş" çalıştı: Ben ses almaya çalıştı Video internetten sadece örnek mp4 dosyasıdır ffmpeg -i "girdi" -VN out.mp3

ffmpeg -i “girdi” -VN -ac 2 -ar 44100 -AB 320k -f mp3 output.mp3 Bu komutların

Maalesef olmayan output.mp3 -acodec kopya -VN -i “giriş”

ffmpeg az bant genişliği kullanıyor görünüyor. Hepsi videonun tamamını indirdi. Videoya sahip olduğunuzdan, aslında sadece ses akışını kendisinden indiren ve bant genişliği kullanımını azaltan bir komutun olup olmadığını doğrulayabilirsiniz. Teşekkürler!

+0

Sunucu, muhtemelen indirirken aramanızı sağlar. Yani indirme linki aranabilirse, neden olmasın. – sashoalm

+0

Bu YoutubeToMp3 uygulaması arka uç olarak FFmpeg kullanıyor mu? FFmpeg'e hangi komut satırı argümanlarının geçtiğini yakalamayı ve görmeyi deneyin. – sashoalm

+0

JDownloader ile bir YouTube URL'si açarsanız, birkaç yükleme, her çözünürlük için bir FLV dosyası, resim ve MP3 önerir;) –

cevap

13

sonra bu alternatif yaklaşım mümkün ve geliştirici değildir öğrendim bir sürü araştırma:

  1. başlığını Ayrıştırma mp4 başlığını
  2. indirin ve ses bayt
  3. İndir yerlerini almak http aralığı istekleri ve ofsetleri ile ses baytları
  4. Ses baytlarını toplayın ve bir çalma m4a dosyası oluşturmak için bunları basit bir ADTS kapsayıcısına sarın

Bu şekilde yalnızca ses baytları için bant genişliği kullanılır. Bunu yapmanın daha iyi bir yolunu bulursanız lütfen bana bildirin.Bir numunenin Android APP ve uygulama check out için

:

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

2

FFmpeg bir URL'yi giriş olarak kabul edebilir. URL aranabilirse, FFmpeg tüm video karelerini teorik olarak atlayabilir ve bu nedenle yalnızca ses akışı için verileri indirmesi gerekir.

deneyin

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

kullanarak ve daha az bant genişliği alırsa bakın.

+0

Çalışmayı başlatır ve donar: 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/3. 17,100 libswscale 2. 1,101/2. 1,101 libswresample 0 15.100/0 15.100 libpostproc 52. 0.100/52. 0.100 – Feras

+0

En azından FFmpeg kullanarak bunu yapmanın yolu budur. Sadece sesi nasıl dönüştürdüğünü sordun. Bu nasıl. Çalışması gerekiyordu, ama hatalar olabilir elbette. Posta listelerinde bir hata oluşturmayı veya kendiniz hata ayıklamayı deneyin. – sashoalm

+0

Bu, hiçbir zaman YouTube ile çalışmayacaktır. FFmpeg gerçek bir dosyayı bir YouTube URL değil, girdi olarak bekler. Ayrıştırma amacı bu değildi. Bağlantı geçerli bir video akışı veya dosyaya işaret ediyorsa, o zaman işe yaramalıdır, ancak YouTube videoyu Flash olarak gömer, bu yüzden YouTube için açık destek eklemedikçe FFmpeg'in ayrıştırması için bir yol yoktur. Youtube-dl gibi araçlar bu konuda çok daha iyi bir iş çıkarmaktadır. – slhck

-2

Eh, şimdi olası youtube video sadece ses indirmek ve bunun için ben bu youtube 2 mp3 api

Çok çalışır kullanmak benim için iyi. youtube kimliğini koymanız gereken tek şey budur.

İlgili konular