想做一个MP4和3GP格式视频的关键帧(I帧)提取,将关键帧存成图片,用C或者C++实现,哪位高人能够帮忙?

最好是调OPENCV的库,能帮忙给出完整代码最好... 最好是调OPENCV的库,能帮忙给出完整代码最好 展开
 我来答
百度网友82fa3aef6
2011-04-04
知道答主
回答量:29
采纳率:0%
帮助的人:29.4万
展开全部
我的想法:开x264,xvid(最好是原来的编码器)假装对其进行2pass编码,pass1完后取其stat文件,写个正则表达式提取iframe,用avs截屏就是了 exec(x264); 文本处理; exec(play the avs)
追问
您说的有点复杂,能具体展开说一下吗?
追答
用x264:
x264.exe --pass 1 --bitrate XXX --stats "x.stats"
打开"x.stats"得到:
#options: ......
in:0 out:0 type:I dur:2 cpbdur:2 q:34.30 tex:196490 mv:29170 misc:6204 imb:1620 pmb:0 smb:0 d:- ref:;
in:3 out:1 type:P dur:2 cpbdur:2 q:34.30 tex:25168 mv:6575 misc:1553 imb:27 pmb:678 smb:915 d:- ref:2712 ;
in:2 out:2 type:B dur:2 cpbdur:2 q:34.30 tex:1821 mv:1569 misc:1178 imb:0 pmb:307 smb:1293 d:s ref:217 ;
in:1 out:3 type:b dur:2 cpbdur:2 q:34.30 tex:1395 mv:2108 misc:1361 imb:0 pmb:423 smb:1190 d:s ref:461 ;
in:7 out:4 type:P dur:2 cpbdur:2 q:47.32 tex:1351 mv:2707 misc:1206 imb:22 pmb:359 smb:1239 d:s ref:632 386 238 180 ;
in:5 out:5 type:B dur:2 cpbdur:2 q:40.81 tex:758 mv:1612 misc:638 imb:0 pmb:143 smb:1471 d:t ref:295 8 14 ;
.......
可以看到"type:P/B/b/I"
写一个代码输出一avs:

directshowsource();
ImageWriter(trim(1),"x.png")
ImageWriter(trim(8),"x.png")
ImageWriter(trim(你要的I帧),"x.png")
.....

最好的方法还是借鉴mplayer/ffmpeg的代码吧
591285015
2011-04-04 · 超过20用户采纳过TA的回答
知道答主
回答量:106
采纳率:0%
帮助的人:44.6万
展开全部
好难,要会 流媒体技术的,这个没多少人会,就算会C++、C也不够
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式