這篇文章主要介紹“Qt ffmpeg音量怎么設(shè)置”,在日常操作中,相信很多人在Qt ffmpeg音量怎么設(shè)置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Qt ffmpeg音量怎么設(shè)置”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
成都創(chuàng)新互聯(lián)是專業(yè)的鳳慶網(wǎng)站建設(shè)公司,鳳慶接單;提供網(wǎng)站制作、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行鳳慶網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
音視頻的播放、關(guān)閉、暫停、繼續(xù)這幾個基本功能,絕大部分人都是信手拈來的搞定,關(guān)于音量調(diào)節(jié)還是稍微饒了下彎彎,最開始打算采用各個系統(tǒng)的api來處理,坐下來發(fā)現(xiàn)不大好,系統(tǒng)的支持不完美,比如有些api限定了win7,而xp確沒有,而且這玩意控制的是全局的音量,不好,大部分時候需要控制的是當(dāng)前播放的媒體的音量,估計vlc和mpv這類播放器在處理聲音的時候也有過如此的場景分析,后面還測試過用ffmpeg的filter濾鏡代碼控制音頻數(shù)據(jù)的分貝值,比較繁瑣,代碼量也大,不方便初學(xué)者學(xué)習(xí),最后靈機(jī)一動去找QAudioOutput的函數(shù)看下有沒有volume的函數(shù),果真有臥槽,原來自帶了,對Qt的愛慕之情又猛增了幾十分,這里要注意的是QAudioOutput的音量值參數(shù)是0-1的范圍double類型,而不是像vlc等播放器是0-100的值,所以需要自行轉(zhuǎn)換。 如果搞定了音量的控制,那靜音的設(shè)置當(dāng)然分分鐘啦,無非就是記住之前的音量,然后將音量設(shè)置0,取消靜音的時候自動設(shè)置音量為最后記住的音量值即可。
多線程實(shí)時播放視頻流+本地視頻+USB攝像頭等。
支持windows+linux+mac,支持ffmpeg3和ffmpeg4,支持32位和64位。
多線程顯示圖像,不卡主界面。
自動重連網(wǎng)絡(luò)攝像頭。
可設(shè)置邊框大小即偏移量和邊框顏色。
可設(shè)置是否繪制OSD標(biāo)簽即標(biāo)簽文本或圖片和標(biāo)簽位置。
可設(shè)置兩種OSD位置和風(fēng)格。
可設(shè)置是否保存到文件以及文件名。
可直接拖曳文件到ffmpegwidget控件播放。
支持h365視頻流+rtmp等常見視頻流。
可暫停播放和繼續(xù)播放。
支持存儲單個視頻文件和定時存儲視頻文件。
自定義頂部懸浮條,發(fā)送單擊信號通知,可設(shè)置是否啟用。
可設(shè)置畫面拉伸填充或者等比例填充。
可設(shè)置解碼是速度優(yōu)先、質(zhì)量優(yōu)先、均衡處理。
可對視頻進(jìn)行截圖(原始圖片)和截屏。
錄像文件存儲支持裸流和MP4文件。
音視頻完美同步,采用外部時鐘同步策略。
支持seek定位播放位置。
支持qsv、dxva2、d3d11va等硬解碼。
支持opengl繪制視頻數(shù)據(jù),極低CPU占用。
支持安卓和嵌入式linux,交叉編譯即可。
bool FFmpegThread::getMute() { return (getVolume() == 0); } int volume = 0; void FFmpegThread::setMute(bool mute) { //先記住之前的音量以便重新設(shè)置 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 } }
到此,關(guān)于“Qt ffmpeg音量怎么設(shè)置”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!