前言:對於從未接觸過音視頻編解碼的同學來說,使用FFmpeg的學習曲線恐怕略顯陡峭。本人由於工作需要,正好需要在項目中使用。因此特地將開發過程總結下來。只當提供給有興趣的同學參考和學習。 由於FFmpeg是使用C語言開發,所有和函數調用都是面向過程的。以我目前的學習經驗來說,通常我會把一個功能 ...
與解碼相關的主要代碼在上一篇博客中已經做了介紹,本篇我們會先討論一下如何控制解碼速度再提供一個我個人的封裝思路。最后回歸到界面設計環節重點看一下如何保證播放器界面在縮放和拖動的過程中保證視頻畫面的寬高比例。 一 解碼速度 播放器播放媒體文件的時候播放進度需要我們自己控制。基本的控制方法有兩種: 根據FPS控制視頻的播放幀率,讓音頻跟隨。 控制音頻的播放解碼速度,讓視頻跟隨。 媒體文件在編碼的時候, ...
2018-04-29 13:34 6 1995 推薦指數:
前言:對於從未接觸過音視頻編解碼的同學來說,使用FFmpeg的學習曲線恐怕略顯陡峭。本人由於工作需要,正好需要在項目中使用。因此特地將開發過程總結下來。只當提供給有興趣的同學參考和學習。 由於FFmpeg是使用C語言開發,所有和函數調用都是面向過程的。以我目前的學習經驗來說,通常我會把一個功能 ...
上一章我用一個demo函數演示了基於Qt的音視頻采集到編碼的完整流程,最后經過測試我們也發現了代碼中存在的問題。本章我們就先處理幾個遺留問題,再對代碼進行完善,最后把編碼功能做基礎封裝。 一、遺留問題和解決方法 (1)如何讓音視頻的錄制保持同步? 在我們的演示代碼中之所以發現音視頻錄制不同步 ...
前兩講演示了基本的解碼流程和簡單功能封裝,今天我們開始學習編碼。編碼就是封裝音視頻流的過程,在整個編碼教程中,我會首先在一個函數中演示完成的編碼流程,再解釋其中存在的問題。下一講我們會將編碼功能進行封裝並解釋針對不同的輸出環境代碼上需要注意的地方。最后我們還會把之前做好的解碼器添加進開發環境,實現 ...
一、安裝Qt相關基本組件: 在ubuntu上安裝,可以直接使用如下的命令來安裝: 詳細的安裝方法可以參考這篇文章:https://blog.csdn.net/thomasqiujs/article/details/44154845 Qt Creator的初級入門視頻可以參考 ...
1、新建一個widget不能在界面工具欄對其上點擊布局(水平、垂直、網格等),原因是界面內部必須有子部件,可以拖進來任意一個部件,這樣就可以對界面進行布局了,然后在刪除拖進來的部件即可。2、定位控件的位置可以使用: a)使用setGeometry()方法定位,這種方法的好處在僅僅幾個控件時使用 ...
Qt提供四種布局: 這種布局生成的格局比較單一,這時候需要另外兩個填充控件,來生成整行或整列的格式。 注意:使用Spacers控件時,必須要放在layouts中的布局中,否則無法保存。 示例: 1、往界面拖入一個verticalLayout 2、往verticalLayout拖入 ...
Halcon是一款優秀的商業版圖像處理軟件,但其在可視化方面有比較差的體驗;而Qt在可視化和界面開發方面擁有很強大的功能和便捷性。自己之前做一些軟件開發工作,現在又在利用Halcon進行圖像處理算法開發,把兩者結合使用,豈不是一件非常有趣的事情! 於是乎,從網上查了一下Qt+Halcon聯合開發 ...
1、添加菜單項 直接輸入菜單項名稱,然后回車即可。 2、為菜單項設置圖標 在動作編輯器上,右鍵選擇編輯,然后添加圖標 如果想在圖標欄添加該菜單的快捷圖標,直接將該動作項拖放只圖標欄 ...