我知道有上百万种方法可以从 youtube 下载视频,然后将其转换为音频或对其进行进一步处理。但最近我很惊讶地看到 mac 上一个名为 YoutubeToMp3 的应用程序实际上显示“跳过 X mb 的视频”并且据说只从视频中下载音频,而不需要使用带宽来下载整个视频然后转换它。我想知道这是否真的正确并且是否可能,因为我找不到任何方法来做到这一点。你有什么想法吗?
编辑: 经过一些测试后,这里有一些关于该主题的附加信息。我试图从中获取音频的视频只是来自互联网的示例 mp4 文件:
我试过了
ffmpeg -i "input"out.mp3
ffmpeg -i "input"-vn out.mp3
ffmpeg -i “输入” -vn -ac 2 -ar 44100 -ab 320k -f mp3 输出.mp3
ffmpeg -i “输入” -vn -acodec 复制输出.mp3
不幸的是,这些命令似乎都没有使用更少的带宽。他们都下载了整个视频。现在你有了视频,你能确认是否真的有一个命令只从它下载音频流并降低带宽使用吗?谢谢!
最佳答案
经过大量研究,我发现这是不可能的,并开发了一种替代方法:
- 下载 mp4 文件头
- 解析头部并获取音频字节的位置
- 使用 http 范围请求和偏移量下载音频字节
- 组装音频字节并将它们包装在一个简单的 ADTS 容器中以生成可播放的 m4a 文件
这样只使用音频字节的带宽。如果您找到更好的方法,请告诉我。
有关示例 Android 应用程序和实现,请查看:
关于audio - 仅从 youtube 视频下载音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15241076/