基于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 ...
随机推荐
- [NOI2018]归程(80pts)
https://www.zybuluo.com/ysner/note/1219964 题面 题面太长,难以概述,[戳我][1] \(ex10pts\ tree\) \(50pts\ n\leq1500 ...
- sublime如何汉化
1.将sublime安装文件夹里面的defavlut.sublime-package这个文件zip解压. 2.然后查找到sublime-menu文件. 3.打开文件将json里面的caption里面的 ...
- P1966 火柴排队(逆序对)
P1966 火柴排队 题目描述 涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度. 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为: ∑(ai-bi) ...
- Spark2.2,IDEA,Maven开发环境搭建附测试
前言: 停滞了一段时间,现在要沉下心来学习点东西,出点货了. 本文没有JavaJDK ScalaSDK和 IDEA的安装过程,网络上会有很多文章介绍这个内容,因此这里就不再赘述. 一.在IDEA上安装 ...
- SnackDown Online Qualifier 2017
好久没做题了,然后就想着随便做一个.无奈cf都是晚上,然后就看见这个,随便做做. 资格赛,只要做出来1题就行了,4天的时间. 1. 水题 #include <iostream> #incl ...
- C - Haiku
Problem description Haiku is a genre of Japanese traditional poetry. A haiku poem consists of 17 syl ...
- B - String Task
Problem description Petya started to attend programming lessons. On the first lesson his task was to ...
- MTK刷机工具Flash_Tool部分4032错误解决办法
MTK刷机工具Flash_Tool部分4032错误解决办法 先说明一点,这个办法不是万能的,我测试解决了以下两种情况下的4032: 1.本来正常的开发板,因为一次刷机失败后就一直变4032了 2.新开 ...
- poj3009 Curling 2.0 深搜
PS:以前看到题目这么长就没写下去了.今天做了半天,没做出来.准备看题解,打开了网站都忍住了,最后还是靠自己做出来的.算是一点进步吧. 分析: 题目的意思没明白或者理解有偏差都没办法做题.看样例3和样 ...
- CNN结构:用于检测的CNN结构进化-结合式方法
原文链接:何恺明团队提出 Focal Loss,目标检测精度高达39.1AP,打破现有记录 呀 加入Facebook的何凯明继续优化检测CNN网络,arXiv 上发现了何恺明所在 FAIR 团 ...