关于ffmpeg视频的渲染

     从 ffmpeg sdl教程 我们可以看到,使用的方法是ffmpeg解码,转成YUV格式的视频帧,然后再使用sdl的yuv覆盖的模式进行渲染。虽然 yuv对每个像素的占用内存较少,且sdl的的输出快速,但是如果要集成到其他UI上就有点麻烦了。

      SDL仅仅就是通过传递参数SDL_WINDOWID给SDL_putenv函数(如下所示),以此重定向视频的渲染输出.中间sdl所做的细节完全看不到,想扩展也不易。据goolge查到,此代码也不能工作在mac系统上.还有一个问题是,假设Widget A上面有子Widget,那么如果你直接用此方法把输出放到Widget A上,那么将造成Widget A 的子Widget疯狂的闪烁。 既然如此还用SDL渲染干嘛。

SDL_putenv("SDL_WINDOWID=0x00111E18");  

      据实践知道,可以直接从ffmpeg转换出rgb 格式的视频帧,然后生成QImage,再交由Widget的painEvent进行绘制,那将灵活好多。如果我们中间需要做一些视频帧的变换处理,比如缩放,翻转,加水印之类也变得不再是难事,qt本身就有提供这些功能,何乐不为呢。

转载于:https://www.cnblogs.com/foxhengxing/archive/2011/01/09/1931485.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值