我目前正在编写一个小脚本,可以将 MP4 动态转换为 Opus 音频并将其发送到golang 中的Discord。最初,我的脚本会在通过 stdin 下载到 ffmpeg 时传递 MP4,然后将 stdout 传递给 Opus 编码器,然后传递给 Discord(就像这样)。在学习了我可以用 Opus 构建 ffmpeg 之后,我想剪掉我以前拥有的 opus 编码器并将 ffmpeg 的输出直接传递给 Discord。以前,我的 ffmpeg 命令看起来像这样(使用第二个 opus 编码器)ffmpeg -i - -f s16le -ar 48000 -ac 2 pipe:1现在,没有编码器并让 ffmpeg 完成所有工作,这就是我到目前为止所想到的。ffmpeg -i - -f s16le -ar 48000 -ac 2 -acodec libopus -b:a 192k -vbr on -compression_level 10 pipe:1但是,使用此命令,Discord 的服务器不会接受音频,这意味着我怀疑 opus 音频不会从另一端发出。没有错误输出。我是否对 ffmpeg 做错了什么可能导致这种情况?
1 回答
拉丁的传说
TA贡献1789条经验 获得超8个赞
尝试
ffmpeg -i - -sample_fmt s16 -ar 48000 -ac 2 -acodec libopus -b:a 192k -vbr on -compression_level 10 -f opus pipe:1
您不能使用-f s16le
as 指定未压缩的输出格式(特定样本类型的),而您需要某个编解码器的压缩数据流。相反,您可以使用sample_fmt
和-f opus
- 1 回答
- 0 关注
- 169 浏览
添加回答
举报
0/150
提交
取消