基于ffmpeg和libvlc的视频剪辑、播放器
以前研究的时候,写过一个简单的基于VLC的视频播放器。后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放、视频加减速、视频剪切,视频合并(增加中)等功能在一起。有时候看点网上下载的视频,可以一边看,一边能处理视频前后的广告,感觉也还可以用,就想把它开源出去,一方面希望有需要的朋友可以参考、借鉴,另一方面也希望可以促进它进一步的丰富功能,最终能实现一款简单又够用的视频剪辑软件。
程序框架
先上一张程序截图

基本上讲,它的播放功能是基于VLC,剪辑功能是基于FFmpeg,现在的功能还比较简单,当然我的目的也不是想做一个复杂的视频编辑器,那是专业软件的事情,就是想做一个简单又好用的剪辑工具即可。整体框架如下图所示:

源码简介
工程
程序目前使用VS2013开发,并通过Qt VS Addin创建QT工程,界面基于QT5来编写。将来准备改为QtCreator工程,目的是为了方便移植到linux平台。
主要逻辑是:QT绘制界面,跟用户交互,通过调用libvlc,实现本地文件播放。在适当的地方设置剪辑参数,然后通过FFMPEG实现视频文件剪辑,完成后,反馈到QT界面。
和普通播放器类似,程序支持左"<-",右"->"快捷键来做视频的快进后退,也可配合Ctrl和Shift键来做。
代码目录

开发计划
- 开发工具由VS2013切换为QtCreator
- 文件播放部分,由目前的调用libvlc,改为通过FFMPEG解码后,渲染播放。
- 剪辑操作,由进程调用FFMPEG程序,改为通过FFMPEG API方式
- 增加视频文件合并,以及格式转换
- 界面改善
源码地址
https://github.com/hbstream/hb-cut-player
有兴趣的朋友可以看看,现在还比较初级,会慢慢更新,欢迎提交建议和代码。
基于ffmpeg和libvlc的视频剪辑、播放器的更多相关文章
- [开源]基于ffmpeg和libvlc的视频剪辑、播放器
[开源]基于ffmpeg和libvlc的视频剪辑.播放器 以前研究的时候,写过一个简单的基于VLC的视频播放器.后来因为各种项目,有时为了方便测试,等各种原因,陆续加了一些功能,现在集成了视频播放.视 ...
- Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试
脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试 by:授客 QQ:1033553122 目的 实现基于http协议的流媒体在线视频播放,服务器性能测试脚本,模拟用户浏览器方式在线播放 ...
- 基于VLC库C#开发可播放摄像头及任意格式视频的播放器
前言 本文主要讲述,在WPF中,借助Vlc.DotNet调用VLC类库,实现视频播功能,下面我们先来做开发前的准备工作. 准备工作 首先,我们创建一个项目WpfVLC,然后,进入Neget搜索Vlc. ...
- 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)
http://blog.csdn.net/leixiaohua1020/article/details/43936415 ======================================= ...
- C#开发可播放摄像头及任意格式视频的播放器
前言 本文主要讲述,在WPF中,借助Vlc.DotNet调用VLC类库,实现视频播功能,下面我们先来做开发前的准备工作. 准备工作 首先,我们创建一个项目WpfVLC,然后,进入Neget搜索Vlc. ...
- canvas 视频音乐播放器
canvas 视频音乐播放器 var play_nor_img_path = 'images/play_btn_n.png'; //播放按钮 正常时 60x60 px var play_sec_img ...
- [RN] 可播放视频的播放器版本
可播放视频的播放器版本 "react": "16.6.3", "react-native": "0.57.8", &qu ...
- 痞子衡嵌入式:基于恩智浦i.MXRT1010的MP3音乐播放器(RT-Mp3Player)设计
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是基于i.MXRT1011的MP3播放器参考设计. i.MXRT1011是恩智浦i.MXRT四位数系列的入门型号,虽然是入门级,可也是50 ...
- hapv-一个可以播放,下载国内主流视频的播放器
electron 开发的一个可以播放,下载国内主流视频的播放器.A player developed by electron that can play and download domestic m ...
随机推荐
- Thinkpad E450c进入BIOS
重启系统,一直按F12,进入系统设置后,按tab进入App Menu选项卡,选择Setup按回车进入BIOS设置
- (Go)07.strings与strconv的示例
package main import ( "strconv" "fmt" "strings" ) func main() { str := ...
- [Apple开发者帐户帮助]六、配置应用服务(3)创建地图标识符和私钥
要与MapKit JS通信,您将使用Maps私钥对一个或多个开发人员令牌进行签名. 首先注册地图标识符以识别您的应用.为使用MapKit JS的每个应用注册地图标识符.接下来创建并下载启用了MapKi ...
- BZOJ 2406 二分+有上下界的网络流判定
思路: 求出每行的和 sum_row 每列的和 sum_line 二分最后的答案mid S->i 流量[sum_row[i]-mid,sum_row[i]+mid] i->n+j ...
- [转载]Android平台第三方应用分享到微信开发
一.申请APPID 微信公共平台和微博分享一样,也需要申请一个ID,来作为调起微信.分享到微信的唯一标识. 申请微信APPID可以到微信平台http://open.weixin.qq.com/app/ ...
- GS运维常用工具及文档
规范部分 GS产品线性能问题处理流程:http://gsk.inspur.com/File/t-4244 XXX项目性能问题信息收集单-模板:http://gsk.inspur.com/File/ ...
- elasticsearch5.3.0 bulk index 性能调优实践
elasticsearch5.3.0 bulk index 性能调优实践 通俗易懂
- JQuery 动态创建表单,并自动提交
前言:写这个是为了实现使用cookie进行自动登录的功能, 下面的代码是一个元素一个元素进行创建和赋值的, (可以尝试下将所有的html代码(form.input)全部拼好以后放到${ } 中,再进行 ...
- 【转载】排名Top 16的Java实用类库
*转载自HollisChuang 链接:http://www.hollischuang.com/archives/1606 1. org.apache.commons.io.IOUtils close ...
- SQL SERVER2012 安装