ffmpeg 命令_Qt音视频开发11-ffmpeg常用命令
一、前言
大部分的格式转换工具比如格式化工厂等,都用到了ffmpeg来处理,ffmpeg编译后生成的ffmpeg.exe、ffplay.exe、ffprobe.exe等可执行文件,其实就封装了众多牛逼的功能,ffprobe查看媒体文件头信息的工具,ffplay用于播放媒体文件的工具,尤其是ffmpeg.exe,强大的媒体文件转换工具,可以转换任何媒体文件,还可以用自己的 AudioFilter 以及 VideoFliter 进行处理和编辑,比如下面的一些功能。
- 列出支持的格式:ffmpeg -formats
- 剪切一段媒体文件:ffmpeg -i input.mp4 -ss 00:00:50.0 -codec copy -t 20 output.mp4
- 提取一个视频文件中的音频文件:ffmpeg -i input.mp4 -vn -acodec copy output.m4a
- 视频静音,即只保留视频:ffmpeg -i input.mp4 -an -vcodec copy output.mp4
- 从MP4文件中抽取视频流导出为裸的H264数据:ffmpeg -i output.mp4 -an -vcodec copy -bsf:v h264_mp4toannexb output.h264
- 使用AAC音频数据和H264视频生成MP4文件:ffmpeg -i test.aac -i test.h264 -acodec copy -bsf:a aac_adtstoasc -vcodec copy -f mp4 output.mp4
- 音频格式转换:ffmpeg -i input.wav -acodec libfdk_aac output.aac
- 将一个MP4的文件转换为一个GIF动图:ffmpeg -i input.mp4 -vf scale=100:-1 -t 5 -r 10 image.gif
既然这些工具这么牛逼,那是不是可以考虑做一个功能,直接程序调用这些可执行文件做处理呢?当然,QProcess上场了,他可以直接调用可执行程序或者直接执行命令,然后能够拦截输出打印的信息,管道的形式read出来,这样就非常直观了,可以在调用可执行文件执行的时候,将打印信息全部输出。
二、功能特点
- 多线程实时播放视频流+本地视频+USB摄像头等。
- 支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。
- 多线程显示图像,不卡主界面。
- 自动重连网络摄像头。
- 可设置边框大小即偏移量和边框颜色。
- 可设置是否绘制OSD标签即标签文本或图片和标签位置。
- 可设置两种OSD位置和风格。
- 可设置是否保存到文件以及文件名。
- 可直接拖曳文件到ffmpegwidget控件播放。
- 支持h265视频流+rtmp等常见视频流。
- 可暂停播放和继续播放。
- 支持存储单个视频文件和定时存储视频文件。
- 自定义顶部悬浮条,发送单击信号通知,可设置是否启用。
- 可设置画面拉伸填充或者等比例填充。
- 可设置解码是速度优先、质量优先、均衡处理。
- 可对视频进行截图(原始图片)和截屏。
- 录像文件存储支持裸流和MP4文件。
- 支持qsv、dxva2、d3d11va等硬解码。
- 支持opengl绘制视频数据,极低CPU占用。
- 支持嵌入式linux,交叉编译即可。
三、效果图
四、相关站点
- 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
- 国际站点:https://github.com/feiyangqingyun/QWidgetDemo
- 个人主页:https://blog.csdn.net/feiyangqingyun
- 知乎主页:https://www.zhihu.com/people/feiyangqingyun/
- 体验地址:https://blog.csdn.net/feiyangqingyun/article/details/97565652
五、核心代码
FFmpegTool
ffmpeg 命令_Qt音视频开发11-ffmpeg常用命令相关推荐
- 流媒体服务器开发——SRS 4.0与WebRTC音视频通话丨音视频开发丨嵌入式开发丨FFmpeg丨iOS音视频开发
SRS 4.0与WebRTC音视频通话 1. 音视频高薪岗位都需要什么技能点 2. WebRTC的技术点分析 3. SRS 4.0如何使用WebRTC 视频讲解如下,点击观看: 流媒体服务器开发--S ...
- ffmpeg获取设备支持的分辨率_Qt音视频开发6-ffmpeg解码处理
一.前言 采用ffmpeg解码,是所有视频监控开发人员必备的技能,绕不过去的一个玩意,甚至可以说是所有音视频开发人员的必备技能.FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开 ...
- FFmpeg 工具:音视频开发都用它,快@你兄弟来看丨音视频工具
(本文基本逻辑:ffmpeg 常用命令介绍 → ffplay 常用命令介绍 → ffprobe 常用命令介绍) 从事音视频开发的程序员几乎都应该知道或使用过 FFmpeg.FFmpeg 是一个开源软件 ...
- c++ vlc读取摄像头_Qt音视频开发1-vlc解码播放
## 一.前言 最开始接触视频监控这块的时候,用的就是vlc作为解码的内核,主要是因为vlc使用简单方便,直接传入一个句柄即可,简单几行代码就可以实现一个视频流播放,很适合初学者使用,也推荐初学者用q ...
- mega2560电脑识别不到端口后_Qt音视频开发41-人脸识别嵌入式
一.前言 大概几年前搞过一套嵌入式linux上的人脸识别程序,当然人脸识别的核心算法并不是自己开发的,关于人脸识别算法这一块,虽然有众多的开源库可以用,甚至还可以用opencv搞算法训练深度学习之类的 ...
- 【音视频开发技术概要】技术背景、学习路线、业界大拿、岗位行业分析
音视频的知识纷繁复杂,自学非常困难,既需要非常扎实的基础知识,又需要有很多的工程经验:本文就从音视频开发,开源框架,视频,业界大神,书籍推荐,就业方向分析,为广大开发者学习音视频技术提供便利. 首先我 ...
- 一文搞懂音视频开发技术点及职业发展方向
音视频的知识纷繁复杂,自学非常困难,既需要非常扎实的基础知识,又需要有很多的工程经验:本文就从音视频开发,开源框架,视频,业界大神,书籍推荐,就业方向分析,为广大开发者学习音视频技术提供便利. 首先我 ...
- 一个强大好用的音视频工具,ffmpeg
列出设备 /usr/local/bin/ffmpeg -list_devices true -f dshow -i dummy 保存文件 /usr/local/bin/ffmpeg -f dshow ...
- java音视频开发技术_FFmpeg音视频核心技术精讲与实战
百度网盘2 D2 h2 i; n# o0 D# M* C! [: B1 M 第1章 学习指南[课程提供200+问题与答案库]4 a# t% { h6 ^: E# O [你遇到的坑,别人已经出坑了,课 ...
最新文章
- 全国大学生智能汽车竞赛英飞凌AURIXTM培训--应用篇 : 3月30日直播
- win7笔记本电脑如何分割和重命名磁盘
- OpenCV密集光流算法的实例(附完整代码)
- c++ array赋值问题
- Service-Oriented Architecture,SOA(转)
- 个人博客代码_Jekyll + Github Pages 搭建个人免费博客
- 会玩!抖音上线拉春联特效 “拜个抖音年”活动参与人数超65万
- python 3.6.3自带的编程调试环境包括了_序章:资料预处理(python3.6 可用fortran unformatted sequencial data读取模块)...
- 【渝粤教育】国家开放大学2019年春季 1349学前教育科研方法 参考试题
- Linux 常用的命令
- win10照片不能下一张的解决办法
- arp-scan使用
- BufferedReader.readLine() 日文乱码
- Strong-Convexity:强凸性
- 《Temporal AA , SMAA and MSAA》
- 表示学习(Representation Learning)之局部表示(Local Representation)与分布式表示(Distributed Representation)
- 由ip地址和子网掩码求网络号、主机号、广播地址(超详细)
- 字节跳动以 50 亿元收购 Pico 入局 VR;哪吒汽车与华为达成合作;韩国计划禁止苹果和谷歌向开发者抽取佣金 | EA周报...
- 《社交app攻击风险应对策略》
- 算法学习过程入门篇(2)-算法初步
热门文章
- mysql timestamp 类型_MySQL中“诡异”的TIMESTAMP数据类型
- CTF-window和linux下命令执行的知识
- java的多态是什么意思_Java中的多态是什么?
- 域socket(domain socket)和ipsocket(TCP/IP socket)区别
- python bytes()函数
- python numba.jit(该装饰器用于将Python函数编译为本机代码、python运算加速器)
- tf.name_scope与tf.variable_scope
- java根据enum某个属性值获取枚举项
- Spring小知识——profile配置
- springboot 加载mybatis的流程