以前我认为我可以在几秒钟内将 100G 的视频转换为音频,因为我认为 mp4 格式的视频和音频是分开的,将视频转换为音频就像用剪刀轻松地剪切一样。
经过彻底的研究后,我发现我的想法完全是错误的,转换需要的时间远远超过几秒,对于 1 小时的视频来说,最多需要 3 分钟,而我有数千小时的视频需要转换,等待这么长时间真是太可怕了。
您是否了解我的想法,即在几秒钟内将长视频转换为音频,就像从音频中剪切视频一样,这样的事情可能吗?或者有什么类似的东西可以让我短时间内转换这些长视频?
答案1
嗯,这要看情况。MP4 只是一个容器。MP4 容器包含(大多数)多个数据流(音频、视频、字幕等)。所有这些流都有自己的编解码器(h.264、MP3、AAC、OGG 等)。您说的是提取音频流。这应该很快,但您不能更改编解码器,否则您必须使用快速的编解码器,因为重新编码需要大量的处理能力和时间。
您可以使用ffmpeg
CLI 来修改音频和视频。因此,如果您的输入有 AAC 音频并且您想告诉ffmpeg
输出 MP3,那么ffmpeg
应该做的是:
- 提取 AAC 流
- 解码
- 编码为 MP3(通常是瓶颈)
- 写入输出文件
如果您保留输入格式,则输出为 aac 文件,ffpmeg 可以跳过第 2 点和第 3 点,并且速度会更快。
所以:
- 了解您的输入格式(
ffmpeg -i file.mp4
、ffprobe file.mp4
或mediainfo file.mp4
) - 保持格式 (
ffmpeg -i the-file.mp4 -vn -c:a copy output.{mp3|aac|ogg|wav}
) - 如果第 2 点无法实现,请使用原始音频,例如 wav (
ffmpeg -i the-file.mp4 -vn -c:a pcm_u24le output.wav
)