音视频开发-- 坑整理

1. 解码时,一定要用avcodec_parameters_to_context(),将流的参数(stream->codecpar)复制到解码器中,否则某些流可能无法正常解码。

复制代码
    //第七步,给给解码器上下文添加参数, avcodec_parameters_to_context():

    ret = avcodec_parameters_to_context(mp3decodercontext, mp3avstrem->codecpar);

2.解码第一帧前,一定要将解码器的timebase设置为流的timebase(即:dec_ctx->pkt_timebase = stream->time_base),否则提示"Could not update timestamps for skipped samples"。

复制代码
    //for fix "error   Could not update timestamps for skipped samples. "
    mp3decodercontext->pkt_timebase = mp3avstrem->time_base;

实际上上述两个问题的本质是:

AVStream 和 AVCodecContext 得到的信息不一样,严格来说,是AVStream获得的多。具体分析一下:

AVStream 是从 av_find_best_stream获得的,而 AVCodecContext 是从直接通过 avcodec_find_decoder(enum AVCodecID id) 获得的,

而AVCodecID 就是固定的那几种,例如 AV_CODEC_ID_H264,可以想象,ffmpeg内部的实现一定是有限制的,其实现一定是参考 h264的spec 。因此才有了上述两个方法的必要性。

相关推荐
EasyDSS2 小时前
WebRTC技术下的EasyRTC音视频实时通话SDK,助力车载通信打造安全高效的智能出行体验
人工智能·音视频
Eric.Lee20213 小时前
python opencv 将不同shape尺寸的图片制作video视频
python·opencv·音视频
灰色人生qwer12 小时前
使用WebSocket实现跨多个服务器传输音频及实时语音识别
websocket·音视频·实时传输
小鱼仙官14 小时前
Ubuntu 编译SRS和ZLMediaKit用于视频推拉流
音视频
摆烂仙君16 小时前
视频分辨率增强与自动补帧
音视频
海姐软件测试1 天前
抖音视频上传功能测试全维度拆解——从基础功能到隐藏缺陷的深度挖掘
功能测试·音视频
DogDaoDao1 天前
视频图像压缩领域中 DCT 的 DC 系数和 AC 系数详解
图像处理·音视频·视频编解码·dct·图像压缩·变换编码·离散余弦变换
fydw_7151 天前
音频生成技术的前沿探索:从语音合成到智能Podcast
人工智能·音视频·语音识别
18538162800余。1 天前
碰一碰发视频源码搭建,支持OEM
音视频
macken99991 天前
音频分类的学习
人工智能·深度学习·学习·计算机视觉·音视频