Загрузите ТОЛЬКО аудио с видео с YouTube
Я знаю, что существует миллион способов загрузки видео с youtube, а затем конвертировать его в аудио или выполнять дальнейшую обработку. Но в последнее время я был удивлен, увидев приложение под названием YoutubeToMp3 на Mac, фактически показывающее "Пропуск X mb видео" и, предположительно, только загрузку аудио с видео, без необходимости использовать ленту для загрузки всего видео, а затем конвертировать его. Мне было интересно, действительно ли это правильно и возможно вообще, потому что я не могу найти способ сделать это. У вас есть идеи?
EDIT:
После некоторых тестов здесь есть дополнительная информация по этой теме. Видео, которое я пытался получить из аудио, - это всего лишь образец файла 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 "input" out.mp3
ffmpeg -i "input" -vn out.mp3
ffmpeg -i "input" -vn -ac 2 -ar 44100 -ab 320k -f mp3 output.mp3
ffmpeg -i "input" -vn -acodec copy output.mp3
К сожалению, не все эти команды используют меньше полосы пропускания. Все они загружают все видео. Теперь, когда у вас есть видео, вы можете подтвердить, есть ли на самом деле команда, которая загружает из нее только аудиопоток и снижает использование полосы пропускания? Спасибо!
Ответы
Ответ 1
После многих исследований я выяснил, что это невозможно, а разработчик - альтернативный подход:
- Загрузите заголовок mp4
- Разберите заголовок и найдите места в байтах аудио
- Загрузите аудио байты с запросами и смещениями диапазона http
- Соберите аудиобайты и оберните их в простой контейнер 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
и посмотрите, требуется ли меньше полосы пропускания.
Ответ 3
Ну, теперь его можно скачать только аудио youtube видео, и для этого я использую это
youtube 2 mp3 api
Это работает очень хорошо для меня. все, что вам нужно, чтобы установить идентификатор youtube и его.