avformat_write_header return 尝试将 PCMU 编码帧写入 avi/mov 文件时的错误代码
avformat_write_header return error code when trying to write PCMU encoded frame into avi/mov file
我正在尝试使用下面的程序将 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
设置为示例格式。
这里有什么问题?提前致谢!
您正在写入 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) .
我正在尝试使用下面的程序将 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
设置为示例格式。
这里有什么问题?提前致谢!
您正在写入 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) .