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。找了半天还是自己的问题,我用同一个名在别的地方打开了同时打开了一次, 造成冲突了。 其实录像时这个地方就是一个单纯的文件操作,所以不成功就只从文件角度去考虑就行了。 如文件独占,权限不够,路径问题等。都是我们自己的问题。

相关推荐
坐望云起15 小时前
FFmpeg.wasm 纯浏览器端视频压缩与格式转换实战:零服务器、零上传、100% 隐私
服务器·ffmpeg·wasm
阿拉斯攀登19 小时前
FFmpeg 转码详解:封装格式、编码器、码率控制
ffmpeg·音视频·webrtc·实时音视频·视频编解码
阿拉斯攀登20 小时前
FFmpeg 入门:命令行的 20 个常用场景
ffmpeg·音视频·webrtc·视频编解码
luoyayun3612 天前
Qt + FFmpeg 音频工具:重采样实现
qt·ffmpeg·重采样
薄荷椰果抹茶3 天前
计算机导论_第6章_笔记
笔记·ffmpeg
FlightYe4 天前
FFmpeg移动端硬解机制
linux·网络·ffmpeg·音视频·实时音视频·视频编解码
小殊小殊5 天前
一文速通GPU版FFmpeg视频转码的安装使用
ffmpeg·音视频·视频编解码
blanks20209 天前
ffmpeg 学习笔记 通过命令行采集音频
ffmpeg
Mahut13 天前
我用 Electron + FFmpeg 做了一个本地视频处理工作站 ClipForge
前端·ffmpeg·electron
源之缘-OFD先行者22 天前
破界渲染:WinForm下的FFmpeg+Vortice极速推流引擎
ffmpeg·winform·推流·h264