FFMPEG录像推流时遇到的问题

FFMPEG录像推流时遇到的问题,记录一下供大参考

  1. ret = avformat_write_header( ofmt_ctx, NULL );

执行写入头后,所有的流的时间基都会被内部重新设置,所以并不你想象的把原来的时间直接入到avPACKET中就可以发送了。必须要把你每个流的PACKET时间转换到对应流的时间。 也就是要用新的时基进行转换一下。

  1. av_interleaved_write_frame(fmt_ctx, &enc_pkt);返回-22

发现是由于时间戳的问题,注意每个流中的时间基是一样的,之后的每个时间戳都是越来越大,出现不正确的时间就会返回-22. 这个我是在录像时发现的。同样推流时也会出现。

  1. avformat_free_context( ofmt_ctx ); 出错

查找了半天发现是由于我在初始化时把里面的一些已经分配好的内存进行了重新分配,导致他在释放时出错, 也就是说在上下文中有好多的内存都是内部自动分配,这样的内存就直接使用就可以。如果你修改了他在释放时会出错

  1. ret = avio_open( &ofmt_ctx->pb, (char*)m_szURL, AVIO_FLAG_WRITE );

当时也是怪了,当录像时总是打不开文件,返回非0,但文件却是创建了,只有1K。找了半天还是自己的问题,我用同一个名在别的地方打开了同时打开了一次, 造成冲突了。 其实录像时这个地方就是一个单纯的文件操作,所以不成功就只从文件角度去考虑就行了。 如文件独占,权限不够,路径问题等。都是我们自己的问题。

相关推荐
陆远方3 小时前
AttributeError: module ‘ffmpeg‘ has no attribute ‘probe‘
ffmpeg
进击ing小白4 小时前
FFmpeg的基本概述(二)
ffmpeg
OperateCode3 天前
AutoVideoMerge:让二刷更沉浸的自动化视频处理脚本工具
python·opencv·ffmpeg
胡耀超4 天前
DataOceanAI Dolphin(ffmpeg音频转化教程) 多语言(中国方言)语音识别系统部署与应用指南
python·深度学习·ffmpeg·音视频·语音识别·多模态·asr
byxdaz4 天前
FFmpeg QoS 处理
ffmpeg
codelancera5 天前
ffmpeg-调整视频分辨率
ffmpeg·音视频
chenchao_shenzhen6 天前
RK3568嵌入式音视频硬件编解码4K 60帧 rkmpp FFmpeg7.1 音视频开发
ffmpeg·音视频·rk3588·音视频开发·嵌入式开发·瑞芯微rk3568·硬件编解码
_多拉不懂A梦7 天前
FFmepg源码系列-avformat_open_input()
c++·ffmpeg·音视频
阿飞__11 天前
C++使用FFmpeg进行视频推流
c++·ffmpeg·音视频