sun*_*ata 5 conversion convert ffmpeg ogg-vorbis
我有一个 .ogg 文件(包含语音),质量为 192kbps,我想将其降低到 32kbps(以节省空间)
我怎样才能做到这一点?
到目前为止,我已经尝试过这个:
ffmpeg -i filename.ogg -ab 32k -f ogg new-filename.ogg
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
[libvorbis @ 0x56157365ab60] encoder setup failed
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!
Run Code Online (Sandbox Code Playgroud)
我使用了错误的命令吗?有没有更好的方法可以节省空间?请注意,我只能访问 192kbps 文件(不是原始文件)
感谢帮助!
这里有两个很好的选择:
两者的详细信息如下:
1. 调整你的 FFmpeg 命令行...
关键问题是 FFmpeg 不会自动更改音频采样率以适当匹配您选择的比特率。但是我猜FFmpeg通常不会做很多手握!
请记住,音频 CD 的采样率通常为 44100 Hz,而简单电话的采样率通常略高于 8000 Hz。因此,您可以选择为 32k Ogg Vorbis 音频设置最佳采样率。以下是一些指导原则:
考虑到这一点,我自己的测试建议您最好使用 22050 Hz 的采样率,请注意这对于语音应该是完全足够的,因此您的命令行应该是:
ffmpeg -i filename.ogg -c:a libvorbis -ab 32k -ar 22050 new-filename.ogg
Run Code Online (Sandbox Code Playgroud)
这在我自己的设置上产生了一个相当合理的结果......
2.使用FFmpeg创建一个使用libopus的小文件...
如果您可能不是完全准备好使用 Ogg Vorbis,那么使用 Opus 是一个很好的选择,在我的测试中,与 Ogg Vorbis 32k 编码相比,它从每个文件中减少了合理数量的千字节。尝试为您的语音文件量身定制的类似以下内容:
ffmpeg -i filename.ogg \
-c:a libopus -b:a 16k -ar 16000 -ac 1 -application voip \
new-filename.ogg
Run Code Online (Sandbox Code Playgroud)
您会对生成的输出文件大小和音频质量感到惊喜。我在“参考资料”中包含了一个很棒的 HydrogenAudio 资源的链接,它应该指导 Opus 的更好的命令行......
参考:
语音编码质量:指导 Opus 语音设置的权威性 HydrogenAudio 页面。
15.8 libopus:用于 libopus 编码的 FFmpeg 选项。请注意-application voip我上面使用的设置,它没有与 opusenc 等效的设置(与其他设置不同)。
| 归档时间: |
|
| 查看次数: |
3439 次 |
| 最近记录: |