首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

使用ffmpeg播放实时视频流的有关问题

2013-10-12 
使用ffmpeg播放实时视频流的问题我需要从网络上不断接收数据包,收到一定数量的数据包后,用代码将数据恢复

使用ffmpeg播放实时视频流的问题
我需要从网络上不断接收数据包,收到一定数量的数据包后,用代码将数据恢复成H264帧,因此我需要一帧一帧的解码并播放.现在的处理过程是这样的:

avcodec_init();

av_register_all();

avcodec_alloc_context(); 

avcodec_find_decoder(..);

avcodec_alloc_frame()

现在出现的问题在于执行了以下步骤后,AVFrame对象中data的值和linesize的值都是空的,但是执行返回值和我输入帧的长度一至,got_picture_ptr的值也非0,多次观察均为200:
avcodec_decode_video(..);

为什么会出现这种现像,如何解决,请各们高人指点

[解决办法]
例子发给你了,查收
[解决办法]
我只能说我用directshow的经验,RGB和yuv都可以直接送给Video Renderer,Video Renderer一般可以直接播放的,不过不同的显卡支持的格式还不全相同。
[解决办法]
200为正确啊,码流也正确
你看看demo的返回值判断情况
[解决办法]
码流是正确的


不过感觉你调用ffmpeg的过程缺少些什么,可能是你没贴全吧,avcodec_open()没调用吧,其实用ffmpeg解网络流和解本地文件是一样的,apiexample.c就是一个很好的例子。
[解决办法]
600k,是D1的yuv420么。。

ffmpeg里面 sws_getContext 可以用来转化图像格式。

用SDL 能直接播放yuv,也可以双缓冲GDI播放,Dshow也不错。

热点排行