关于ffmpeg视频的渲染

news/2024/7/10 19:46:01 标签: 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


http://www.niftyadmin.cn/n/1547299.html

相关文章

Mysql rownum

Mysql rownum SELECT rownum:rownum1 rownum, 字段 From(SELECT rownum:0,a.* FROM tablename a WHERE 11 ORDER BY time limit 10) t

java string构造函数_灵魂拷问:创建 Java 字符串,用还是构造函数

在逛 programcreek 的时候,我发现了一些小而精悍的主题。比如说:创建 Java 字符串,用 "" 还是构造函数?像这类灵魂拷问的主题,非常值得深入地研究一下。01、""来看这样一串代码:String…

Mysql 随机生成6位数字

Mysql 随机生成6位数字 SELECT FLOOR(RAND()*500000 500000);SELECT CEILING(RAND()*500000500000);

php 获取xml内容,PHP-php 如何获取请求的xml数据

$xml xmldata;//要发送的xml$url http://localhost/test/getXML.php;//接收XML地址$header Content-type: text/xml;//定义content-type为xml$ch curl_init(); //初始化curlcurl_setopt($ch, CURLOPT_URL, $url);//设置链接curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//…

Mysql 获取表的所有字段

Mysql 获取表的所有字段 select COLUMN_NAME from information_schema.COLUMNS where table_name your_table_name;select COLUMN_NAME from information_schema.COLUMNS where table_name your_table_name and table_schema your_db_name;取出所有字段,用一行显…

php5.6与php5.4,php5.4 升级至php5.6遇到到问题

php5.4 升级至php5.6遇到到问题发布时间:2020-04-11 02:07:05来源:51CTO阅读:1684作者:Shell_Me从php5.4升级到5.6遇到的问题安装 php5.6.33 和Apache2.4 都是window 64位php直接取官网下载这是apache2.4的下载http://www.apachel…

Linux NFS

Linux NFS http://share.blog.51cto.com/278008/243798/ cat /etc/exports

php log 行号 debug_backtrace,PHP debug_backtrace() 函数

例子function one($str1, $str2){two("Glenn", "Quagmire");}function two($str1, $str2){three("Cleveland", "Brown");}function three($str1, $str2){print_r(debug_backtrace());}one("Peter", "Griffin");?…