FFmpeg 推流、拉流 使用问题一览
·
目的
最近尝试使用FFmpeg 对业务进行拉流和推流,以便于客户和用户更直观的使用,遂尝试进行推流的方法进行i业务展示。
尝试
一、初步FFmpeg 源码编译问题参考该页面
- FFmpeg wiki web有官方流程
也可尝试使用如下形式
sudo apt-get install ffmpeg
完成上步骤,获得FFmpeg的动态库和头文件,即可对源视频流进行解码,编码,拉流和推流。
源码流程思路为:
RTSP->H.264->YUV420P->BGR->(业务部分detect)->YUV420P->H.264->RTMP
如上步骤中间踩坑,遂记录。
二、坑的问题
1、拉流过程较为容易,参考雷大神的Blog,愿天堂没有代码
CSDN链接:FFmpeg基础
注意点估计就是对于网络流,雷大神的Demo中并没有对AVDictionary的设置
这个在网络流取流中对于参数设置是相对重要的。
2、推流过程也较为容易,还是可以参考雷大神的代码。
3、YUV420P转Mat的RGB格式,也较为容易,就是注意转换上下文的设置,其中转换上下文中的参数应当为输入视频流的pix_fmt
AVFormatContext *ifmt
AVCodecContext *ifmt_pcodec
这种的话就是
ifmt_pcodec->pix_fmt均为编码器上下文信息,该内容指向图像编码格式。
4、整合,上述整合产生问题为,Processtime不能过长,中间拉流推流间隔过长直接导致delay延迟累计,然后产生卡顿,花屏等现象。
待解决和使用方案
目前准备尝试采用Cuda进行编解码,CPU解码方式占用率极其之高,且效率低下,故后续可尝试硬解,还有很多方面等待优化,暂时记录到这。
更多推荐

所有评论(0)