尝试将PCMU编码帧写入avi / mov文件时,avformat_write_header返回错误代码

时间:2015-08-06 04:03:51

标签: ffmpeg h.264 pcm avi mov

我正在尝试使用以下程序将PCMU G.711 enocded数据写入avi多媒体容器,这会产生Error occurred when opening output file: Operation not permitted,当使用mov容器时,它会产生Error occurred when opening output file: Invalid argument。我将AV_CODEC_ID_PCM_U16LE设置为输出格式的音频编解码器,将AV_SAMPLE_FMT_S16设置为样本格式。

这里有什么问题?提前谢谢!

1 个答案:

答案 0 :(得分:2)

您正在编写AV_CODEC_ID_PCM_U16LE,它不是G711,而是原始PCM无符号16位数据。 AVI / mov不支持此功能(它们支持带符号的16位PCM数据,或8位无符号PCM数据,但不支持无符号16位PCM数据)。所以这就是你得到这个错误的原因。但无论如何,你不想使用它,因为它不是G711。

G711有两种类型:mu-law或a-law,所以你必须决定你想要哪两种,然后使用正确的AVCodecID(AV_CODEC_ID_PCM_ALAW或CODEC_ID_PCM_MULAW)。