用FFMPEG解出来的图像显示有马塞克,咋回事
发布时间:2011-06-27 19:27:52 文章来源:www.iduyao.cn 采编人员:星星草
用FFMPEG解出来的图像显示有马塞克,怎么回事?
用FFMPEG解出来的图像显示有马塞克,怎么回事?
我用LIVE555接收,开了BUFFER,解出来的图像显示有马塞克,我怀疑是网络丢包的问题。。
这时我试了下播放本地文件,还是一样的效果,而且还会闪烁,有条扫描线在来回抖动,请问这是怎么回事啊?
是解码的问题还是显示的问题?我显示是用FFMPEG解出的YUV420格式直接写屏。。
------解决方案--------------------
扫描线在来回抖动,是制式的问题,比如视频源是NTSC,你按PAL采集编码经常会出现这种情况。
马塞克有两种:
一种是丢失数据引起的,另一种是压缩过大,比如下载的rmvb电影经常有。
如果能确定你的文件播放过程没有丢失数据(播放一帧同时写一帧到文件,然后和原始文件比较),那就是码流设置的问题了,设置大一些试试。
------解决方案--------------------
VLC本身有丢包处理,所以就算网络堵塞,丢很多包,最多是卡,不会马塞克。
SDL只是个图像显示库,本身没有网络传输功能吧,传输这部分你怎么做的?问题应该出在这里
------解决方案--------------------
你是用ffmpeg.exe解码,还是用libavcodec.dll?
如果用libavcodec,要仔细参考ffmpeg.c,上面解码是放到一个环形缓冲里的,循环,等这一帧完全解好,再发到Render上。你自己解码,可能解一帧就播放一帧,没注意这一帧解码是否完全解好。如果某帧解不完全,就有mosaic现象。
------解决方案--------------------
------解决方案--------------------
//这一句是解码,解成YUV420
int len = avcodec_decode_video(decode_c, decode_picture, &got_picture,inbuf_ptr, size);
if(len == -1)
return;
if (got_picture)
{
AVFrame *tmp_picture;
tmp_picture=avcodec_alloc_frame();
if(tmp_picture==NULL)
return ;
int numBytes=avpicture_get_size(PIX_FMT_RGB24, video_width, video_height);
uint8_t* buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
avpicture_fill((AVPicture *)tmp_picture, buffer, PIX_FMT_RGB24, video_width, video_height);
//YUV420转成RGB24
img_convert((AVPicture *)tmp_picture, PIX_FMT_RGB24, (AVPicture *)decode_picture, PIX_FMT_YUV420P ,decode_c->width,decode_c->height);
//回调,或直接Render (tmp_picture->data[0],numBytes
av_free(buffer);
av_free(tmp_picture);
}
上面这个例子表示在一般情况下,不用循环,一次可以解一帧,解完之后img_convert转成BMP,Render之后很正常。你参考一下。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
DSHOW push
推模式,ConnectDirect 的,为什么我一直反回错误
下级级用的是HAALI的一个东西,用CMemStream拉模式的时候是可以连接的
...
-
ffmpeg编码后视频速度不正确,质量也不好,求助,求助,求助,求助啊
对采集到得摄像头图像进行编码保存,发现得到的视频质量不好,而且速度不...
-
请问怎么在live555中接收jpeg
请问,我现在想接收一个服务器发送的jpeg 不知道怎么用live555做一个客户端, 接收它并显示。
请问应...
-
XP SP3 YUV420 的fiter依赖 在线等答案……
链接时媒体类型为WMMEDIASUBTYPE_I420
有的XP可以播放出来
有的就不行,请问不能播放...
-
如何获取通过麦克风来获取当前说话的音量?
使用Wave系统API采集音频输入的数据,当数据缓存区满了后,收到消息取得数据后,如何根据这里...
-
RFC3984 有没有完整的中文版本呢?
搜了几个 都是一半英文一半中文的。哎 郁闷!
------解决方案--------------------
英文的凑合...
-
介绍一个学习directshow和com、atl技术的网站
有一个学习directshow和com、atl技术的网站,还可以下视频教程,共享给大家: http://www...
-
攻击帖:jrtplib、live555是个垃圾,刚开始搞流媒体就用这玩意就是找s
不解释~
来丢我砖头吧~~
我分太多了用不完~ 支持的散分~~~
...
-
50分,寻找《Visual C++音频/视频处理技术及工程实践》的随书光盘?
急于使用其中的几个例程。若哪位好心人能够提供,非常感谢!!我的QQ:52...
-
h264的高宽比怎么获取?
我看标准里面只有样点的高宽比啊。
还有,bit rate可以读出来吗?
------解决方案--------------------
是要...