ffmpeg – 原始h.264比特流解码

我可以从相机获得原始h.264帧. (它不包含任何网络标头,例如rtsp,http).
它们是h.264原始数据.
我将这些数据逐帧推送到队列中.
我用Google搜索了许多ffmpeg示例,该示例将avformat_open_input()与本地文件路径或网络路径一起使用.
当我将帧保存到文件并使用avformat_open_input()时,我可以看到视频.

我的问题是我想要实时解码帧,而不是将其保存为文件.
有没有人对此有任何想法?

谢谢!

解决方法

你不需要avformat,你需要avcodec. avformat用于解析容器和协议. avcodec用于编码和解码基本流(您已经拥有的).

AVPacket avpkt; int err,frame_decoded = 0;
AVCodec *codec = avcodec_find_decoder ( AV_CODEC_ID_H264 );
AVCodecContext *codecCtx = avcodec_alloc_context3 ( codec );
avcodec_open2 ( codecCtx,codec,NULL );
// Set avpkt data and size here
err = avcodec_decode_video2 ( codecCtx,avframe,&frame_decoded,&avpkt );

相关文章

文章浏览阅读903次。文章主要介绍了收益聚合器Beefy协议在币...
文章浏览阅读952次。比特币的主要思路是,构建一个无中心、去...
文章浏览阅读2.5k次。虚拟人从最初的不温不火,到现在步入“...
文章浏览阅读1.3k次,点赞25次,收藏13次。通过调查和分析用...
文章浏览阅读1.7k次。这个智能合约安全系列提供了一个广泛的...
文章浏览阅读1.3k次。本文描述了比特币核心的编译与交互方法...