原创 ffmpeg各種超時問題
1.設置rtsp超時 AVDictionary* opts = NULL; av_dict_set(&opts, "rtsp_transport", m_bTcp ? "tcp" : "udp", 0); //設置tcp or udp,默
原创 直播優化
越來越激烈,進過18年這波洗牌後,已經度過了蠻荒暴力期,剩下的都是在不斷追求體驗。通過多種方案並行,把首開降到500ms以下,希望能對大家有借鑑。 背景:基於FFmpeg的ijkplayer,最新版本0.88版本。 拉流協議基於http-
原创 JNI快速學習
JNI是JVM中的一部分,它的存在就是爲了打通java和native模塊的橋樑。剛接觸的時候會遇到一堆陌生的api,其實這些api的命名比較規範,調用幾次之後就能舉一反三。關鍵是要弄懂JNI的一些調用順序,以下就是我用JNI碰到的一些關鍵
原创 c++11多線程
轉載:https://www.cnblogs.com/wangguchangqing/p/6134635.html 說到多線程編程,那麼就不得不提並行和併發,多線程是實現併發(並行)的一種手段。並行是指兩個或多個獨立的操作同時進行。注意這
原创 C++11之std::future和std::promise和std::std::packaged_task
C++11之std::future和std::promise和std::std::packaged_task 爲什麼C++11引入std::future和std::promise?C++11創建了線程以後,我們不能直接從thread.jo
原创 NDK開發中C與C++互相調用處理
在NDK開發中難免會遇到C與C++混合編程,比如C調用C++寫的so庫或者C++調用C的函數庫,如果不做特別處理,就會出現編譯通過但鏈接時找不到函數或者壓根就編譯不通過的情況。 爲什麼會出現這種情況? 有兩個原因:
原创 解決FFmpeg HLS斷網判斷錯誤問題
最近小夥伴遇到了直播hls,網絡斷開獲取不到錯誤碼的問題。網上也有類似問題討論,比如: 現在播放hls,rtmp視頻的時候,網絡變化斷開,播放器執行的不是error方法,而是complete 這可能是FFmpeg的一個bug。同事寫了個臨
原创 ffmpeg http協議 設置字段含義
16.11 http HTTP(超文本傳輸協議)。 該協議接受以下選項: seekable 控制連接的可尋找性。如果設置爲1,則資源應該是可搜索的,如果設置爲0,則認爲不可搜索,如果設置爲-1,如果它是可搜索的,它將嘗試自動檢測。
原创 FFmpeg:開流和讀流超時設計
原文鏈接:https://www.jianshu.com/p/926e84124480 ffmpeg的avformat_open_input()和av_read_frame默認是阻塞的 * 用
原创 ffplay中音視頻同步
原文鏈接:https://www.cnblogs.com/lihaiping/p/4034097.html 最近在看ffmpeg相關的一些東西,以及一些播放器相關資料和代碼。 然後對於ffmpe
原创 FFmpeg總結
根據雷神的博客與項目中用到的FFmpeg總結如下: FFMPEG中結構體很多。最關鍵的結構體可以分成以下幾類: a) 解協議(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,U
原创 mp3文件格式詳解
Mp3文件格式: 參考:https://www.cnblogs.com/ranson7zop/p/7655474.html https://www.cnblogs.com/ranson7zop/p/7655474.html 下面對根據
原创 AVFrame 中data與extend_data的區別
1. 什麼是PCM? PCM(Pulse Code Modulation,脈衝編碼調製)音頻數據是未經壓縮的音頻採樣數據裸流,它是由模擬信號經過採樣、量化、編碼轉換成的標準數字音頻數據。 描述PCM數據的6個參數: Sample Ra
原创 時間戳
#include "ticks.h" static char ticks[32]; char *getCurrentTimeMillis(void) { struct timespec ts; clock_gettime(CLOC
原创 c++11多線程編程(十):packaged_task介紹與實例
c++11多線程編程(十):packaged_task介紹與實例 2017年12月27日 10:36:35 小麒麟666 閱讀數:860更多 所屬專欄: c++11多線程編程 版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 http