我正在尝试使用以下程序将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
设置为样本格式。
这里有什么问题?提前谢谢!
答案 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)。