赞
踩
前面3篇大概介绍了音视频解码播放显示等,这篇介绍最关键的地方,视频快进seek功能。
由于要做视频剪辑,需要调节视频的起始点,用Slider控件是比较好的选择,但是Qt提供的QSlider只能单向拖动,不能双向拖动,很遗憾,用两个QSlider又不美观。还好Qt有很多第三方拓展库,于是找到了Qt双向滑动控件QxtSpanSlider,关于该控件的使用,可以查看我的博客 Qt双向滑动控件QxtSpanSlider
在滑动两边Slider时分别触发以下两个信号
- connect(ui.timeSlider, &QxtSpanSlider::lowerPositionChanged, this, &VideoCutter::onLeftPointSeek);
- connect(ui.timeSlider, &QxtSpanSlider::upperPositionChanged, this, &VideoCutter::onRightPointSeek);
再链接ffmpeg的seek功能,即可实现双向seek快进快退。主要是调用ffmpeg API: av_seek_frame,代码如下:
- bool FFmpegUtils::Seek(float pos)
- {
- QMutexLocker locker(&mutex);
-
- if (!m_afc)
- {
- return false;
- }
-
- int64_t stamp = 0;
- stamp = p
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。