Qtffmpeg音量怎么设置
这篇文章主要介绍“Qt ffmpeg音量怎么设置”,在日常操作中,相信很多人在Qt ffmpeg音量怎么设置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Qt ffmpeg音量怎么设置”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联是专业的凤庆网站建设公司,凤庆接单;提供网站制作、成都网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行凤庆网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
一、前言
音视频的播放、关闭、暂停、继续这几个基本功能,绝大部分人都是信手拈来的搞定,关于音量调节还是稍微饶了下弯弯,最开始打算采用各个系统的api来处理,坐下来发现不大好,系统的支持不完美,比如有些api限定了win7,而xp确没有,而且这玩意控制的是全局的音量,不好,大部分时候需要控制的是当前播放的媒体的音量,估计vlc和mpv这类播放器在处理声音的时候也有过如此的场景分析,后面还测试过用ffmpeg的filter滤镜代码控制音频数据的分贝值,比较繁琐,代码量也大,不方便初学者学习,最后灵机一动去找QAudioOutput的函数看下有没有volume的函数,果真有卧槽,原来自带了,对Qt的爱慕之情又猛增了几十分,这里要注意的是QAudioOutput的音量值参数是0-1的范围double类型,而不是像vlc等播放器是0-100的值,所以需要自行转换。 如果搞定了音量的控制,那静音的设置当然分分钟啦,无非就是记住之前的音量,然后将音量设置0,取消静音的时候自动设置音量为最后记住的音量值即可。
二、功能特点
多线程实时播放视频流+本地视频+USB摄像头等。
支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。
多线程显示图像,不卡主界面。
自动重连网络摄像头。
可设置边框大小即偏移量和边框颜色。
可设置是否绘制OSD标签即标签文本或图片和标签位置。
可设置两种OSD位置和风格。
可设置是否保存到文件以及文件名。
可直接拖曳文件到ffmpegwidget控件播放。
支持h365视频流+rtmp等常见视频流。
可暂停播放和继续播放。
支持存储单个视频文件和定时存储视频文件。
自定义顶部悬浮条,发送单击信号通知,可设置是否启用。
可设置画面拉伸填充或者等比例填充。
可设置解码是速度优先、质量优先、均衡处理。
可对视频进行截图(原始图片)和截屏。
录像文件存储支持裸流和MP4文件。
音视频完美同步,采用外部时钟同步策略。
支持seek定位播放位置。
支持qsv、dxva2、d3d11va等硬解码。
支持opengl绘制视频数据,极低CPU占用。
支持安卓和嵌入式linux,交叉编译即可。
三、效果图
四、核心代码
bool FFmpegThread::getMute() { return (getVolume() == 0); } int volume = 0; void FFmpegThread::setMute(bool mute) { //先记住之前的音量以便重新设置 if (mute) { volume = getVolume(); setVolume(0); } else { setVolume(volume); } } int FFmpegThread::getVolume() { if (this->isRunning()) { #if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) return audioOutput->volume() * 100; #endif } else { return 0; } } void FFmpegThread::setVolume(int volume) { if (this->isRunning()) { #if (QT_VERSION > QT_VERSION_CHECK(5,0,0)) //查阅手册说范围值是 0.0 - 1.0 audioOutput->setVolume((float)volume / 100.0); #endif } }
到此,关于“Qt ffmpeg音量怎么设置”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
新闻名称:Qtffmpeg音量怎么设置
转载注明:http://ybzwz.com/article/jeojdp.html