2013-03-06 14 views
12

Wiem, że istnieje milion sposobów na pobranie filmu z YouTube, a następnie przekonwertowanie go na dźwięk lub dalsze przetwarzanie na nim. Ale ostatnio byłem zaskoczony, że aplikacja o nazwie YoutubeToMp3 na komputerze Mac wyświetla "Pomijanie X mb wideo" i podobno tylko pobiera dźwięk z wideo, bez konieczności użycia pasma, aby pobrać cały film, a następnie przekonwertować go. Zastanawiałem się, czy jest to rzeczywiście poprawne i możliwe, ponieważ nie mogę znaleźć żadnego sposobu, aby to zrobić. Czy masz jakies pomysły ?Pobierz TYLKO audio z youtube video

EDYCJA: Po kilku testach tutaj jest kilka dodatkowych informacji na ten temat. Wideo, które starałem się uzyskać dźwięk z jest tylko przykładowy plik mp4 z internetu:

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

Próbowałem

ffmpeg -i "wejściowych" out.mp3

ffmpeg -i "wkład" -vn out.mp3

ffmpeg -i „wkład” -vn -ac 2 Ar 44100 -ab 320k -f mp3 output.mp3

ffmpeg -i „input” -vn -acodec kopii output.mp3

Niestety non tych poleceń wydaje się być użycie mniejszej przepustowości. Wszyscy pobierają cały film. Teraz, czy masz już wideo, czy możesz potwierdzić, czy rzeczywiście istnieje polecenie, które pobiera tylko strumień audio z niego i obniża zużycie pasma? Dzięki!

+0

Serwer prawdopodobnie umożliwia wyszukiwanie podczas pobierania. To znaczy. jeśli link do pobrania jest dostępny, to dlaczego nie. – sashoalm

+0

Czy ta aplikacja YoutubeToMp3 używa FFmpeg jako zaplecza? Spróbuj przechwycić i zobaczyć, jakie argumenty wiersza poleceń przekazuje do FFmpeg. – sashoalm

+0

Jeśli otworzysz adres URL YouTube za pomocą JDownloadera, zaproponuje ci kilka pobrań, jeden plik FLV dla każdej rozdzielczości, obraz i MP3;) –

Odpowiedz

13

Po wielu badaniach I okazało się to niemożliwe, a deweloper alternatywne podejście:

  1. Pobierz nagłówek mp4
  2. Przetwarza nagłówek i inne lokalizacje bajtów dźwięku
  3. Pobierz bajty audio z żądaniami i przesunięciami w zakresie http
  4. Zmontuj bajty audio i umieść je w prostym pojemniku ADTS, aby wygenerować plik m4a z odtwarzaniem

W ten sposób używana jest tylko przepustowość dla bajtów audio. Jeśli znajdziesz lepsze podejście, daj mi znać.

Dla próbki Android APP i sprawdzenie realizacji out:

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

2

FFmpeg jest w stanie zaakceptować adres URL jako dane wejściowe. Jeśli URL jest dostępny, FFmpeg mógłby teoretycznie pominąć wszystkie klatki wideo, a zatem musiałby pobrać tylko dane dla strumienia audio.

Spróbuj użyć

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

i zobaczyć, czy to ma mniejszą przepustowość.

+0

Rozpoczyna pracę i zawiesza się na: libavutil 51. 73.101/51. 73.101 libavcodec 54. 59,100/54. 59,100 muxera 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

Cóż, jest to sposób, aby to zrobić za pomocą przynajmniej FFmpeg. Zapytałeś, jak przekonwertować tylko dźwięk. Właśnie tak. Powinno działać, ale oczywiście mogą występować błędy. Spróbuj zgłosić błąd na swojej liście mailingowej lub samodzielnie debuguj. – sashoalm

+0

To nigdy nie będzie działać z YouTube. FFmpeg oczekuje rzeczywistego pliku jako danych wejściowych, a nie adresu URL w YouTube. To nie jest to, co ma analizować. Jeśli link wskazuje na prawidłowy strumień wideo lub plik, powinien działać, ale YouTube osadza wideo jako Flash, więc nie ma możliwości, aby FFmpeg przeanalizował je, chyba że dodało wyraźne wsparcie dla YouTube. Narzędzia takie jak 'youtube-dl' wykonują o wiele lepszą pracę. – slhck

-2

Cóż, teraz można pobrać tylko dźwięk z YouTube wideo i że mogę używać tego youtube 2 mp3 api

Działa bardzo dobrze dla mnie. wszystko, czego potrzebujesz, aby umieścić identyfikator YouTube i to wszystko.

Powiązane problemy