WriteN, RTMP send error

WriteN, RTMP send error 32 (133 bytes)
WriteN, RTMP send error 32 (49 bytes)
WriteN, RTMP send error 9 (42 bytes)

現象:

推流失敗,srs服務出錯。

原因

視頻流較慢,音頻流較快。

復現

視頻解碼得到幀數據,用異步接口處理幀數據,在回調函數中取回處理完的幀數據再編碼推流,此時因為處理幀數據有一定的延時,10ms左右,所以在 write_frame 時,寫入了較多的音頻數據和少量的視頻數據,推流時報錯。

處理

將音頻幀數據存到一個隊列中,每一次異步接口返回時,從隊列中彈出適當的音頻幀數據。

 ret = av_interleaved_write_frame(fmt_rtmp_ctx_, pkt);AVPacket* audio_packet = NULL;if (!audio_packets_queue_.empty()) {audio_packet = audio_packets_queue_.front();} else {return ret;}while(audio_packet->pts < video_pts_ + 200) {printf("audio pts: %ld dts: %ld duration: %ld\n", audio_packet->pts, audio_packet->dts, audio_packet->duration);av_interleaved_write_frame(fmt_rtmp_ctx_, audio_packet);mutex_.lock();audio_packets_queue_.pop();av_packet_free(&audio_packet);if (audio_packets_queue_.empty()) {mutex_.unlock();break;}audio_packet = audio_packets_queue_.front();mutex_.unlock();}av_packet_unref(pkt);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375452.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

樣式公用代碼

/************** bug ************/.clearfix:after {content:""; display:block; height:0px; clear:both; overflow:hidden;}.clearfix {display:inline-block;}.clearfix {display:block;} /************** 公共用 ************/html {overflow:-moz-scrollbars-v…

即時聊天IM之二 openfire 整合現有系統用戶

合肥程序員群&#xff1a;49313181。 合肥實名程序員群&#xff1a;128131462 (不愿透露姓名和信息者勿加入) Q Q:408365330 E-Mail:egojitqq.com 綜述&#xff1a; 每天利用中午時間更新下這個知識點的的博客如果感興趣的覺得更新慢了也別介意&#xff08;其它時間還是…

cannot convert ‘_IO_FILE*’ to ‘const char*

錯誤代碼 #ifdef NDEBUG#define DBUG_PRINT(fmt, ...) #else#define DBUG_PRINT(fmt, ...) printf(fmt, ##__VA_ARGS__) #endifBUG_PRINT(stderr, "decode %s does not support device type cuda.\n", dec->name);修改 BUG_PRINT("decode %s does not supp…

找出數組中前K大的值

將數組劃分為兩部分&#xff0c;前K項為前K大值的集合&#xff0c;無需有序。 while(true) {int flag nums[k];while(i < k && nums[i] > flag) {i;}while(j>k && nums[j] < flag) {j--;}if (i j || nums[i] nums[j]) {break;}int tmp nums[i]…

C#在ASP.NET4.5框架下的首次網頁應用

運行效果預覽: 先看實踐應用要求: 1&#xff0e;編寫一個函數&#xff0c;用于計算1&#xff01;2&#xff01;3&#xff01;4&#xff01;5&#xff01;&#xff0c;在控制臺或頁面輸出運行結果。 2&#xff0e;在控制臺或頁面輸出九九乘法表。 3&#xff0e;輸入10個以內的整…

javascript的變態位運算

javascript的變態位運算 var a "10" | 0; alert(a); alert (typeof a);結果為10,number。 這就是說這條語句可以將字符串轉化為number。 如果&#xff1a;var a "sss" | 0;alert(a);結果為0.parseInt("sss")的話&#xff0c;會返回NaN。這個太…

CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib

wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.X.X.zip unzip opencv_contrib.zip cmake -D OPENCV_EXTRA_MODULES_PATH~/opencv_contrib-4.X.X/modules參考

Android-Universal-Image-Loader三大組件DisplayImageOptions、ImageLoader、ImageLoaderConfiguration詳解...

轉 一、介紹 Android-Universal-Image-Loader是 一個開源的UI組件程序&#xff0c;該項目的目的是提供一個可重復使用的儀器為異步圖像加載&#xff0c;緩存和顯示。所以&#xff0c;如果你的程序里需要這個功能的話&#xff0c;那么不妨試試它。 因為已經封裝好了一些類和方法…

營銷類文章 SEO

如何有效的推廣網站 適合沒錢的中小站長 唐世軍 a5總經理 博客 門戶網站廣告報價—以新浪為例 貴的一天30多萬 碧藍天營銷學院 網絡營銷&#xff0c;你真的了解嗎&#xff1f; SEO工具mozBar介紹、友情鏈接新參考mozRank 談談網絡推廣團隊每天工作流程、工作標準、考核 請問安卓…

顯示 grep 結果的指定行

用grep查找特定關鍵字&#xff0c;結果很多&#xff0c;但是有用的在中間的某幾行&#xff0c;即grep得到結果之后再次過濾出指定幾行。 首先查找指定行 grep -a "X" filename | grep -an "X"記下指定行&#xff0c;然后用awk打印指定行 grep -a "…

Java小知識

內部類分為: 成員內部類、靜態嵌套類、方法內部類、匿名內部類。(1)、內部類仍然是一個獨立的類&#xff0c;在編譯之后內部類會被編譯成獨立的.class文件&#xff0c;但是前面冠以外部類的類名和$符號。(2)、內部類不能用普通的方式訪問。成員變量成員變量靜態成員變量。List遍…

C++ 設置線程名字

使用 std::thread #include <thread> #include <pthread.h>std::thread t(funs, args); pthread_setname_np(t.native_handle(), threadName);通過 pthread_create 創建 #define _GNU_SOURCE #include <pthread.h>pthread_t tid; pthread_create(&ti…

java學習_File屬性處理

// TODO Auto-generated method stub File filenew File("newhello.txt"); //文件是否存在 System.out.println("文件是否存在&#xff1a;"file.exists()); //讀取文件名稱 System.out.println("讀取文件名&#xff1a;"file.getName()); //讀取…

pytest 基礎講解

文章目錄 一、前置說明二、操作步驟1. 安裝 pytest2. python 編寫測試用例3. 在 pycharm 中使用 pytest 運行測試用例1)執行單條用例:點擊用例前面的三角形執行,或在用例內部點擊右鍵2)執行多條用例:在測試用例的外部區域,點擊右鍵,批量執行所有用例4. 命令行中使用 pyt…

Myeclipse8.6中安裝SVN插件

方法一&#xff1a; 1.打開HELP->MyEclipse Configuration Center&#xff0c;切換到SoftWare標簽頁。   2.點擊Add Site 打開對話框&#xff0c;在對話框Name輸入Svn&#xff0c;URL中輸入&#xff1a;http://subclipse.tigris.org/update_1.6.x   3.在左邊欄中找到Per…

初識EL

一、EL函數庫介紹 由于在JSP頁面中顯示數據時&#xff0c;經常需要對顯示的字符串進行處理&#xff0c;SUN公司針對于一些常見處理定義了一套EL函數庫供開發者使用。  這些EL函數在JSTL開發包中進行描述&#xff0c;因此在JSP頁面中使用SUN公司的EL函數庫&#xff0c;需要導入…

ffmpeg 合并 flv 文件

// 轉ts char cmd[1024] {\0}; sprintf(cmd, "ffmpeg -i %s -loglevel quiet -c copy -bsf:v h264_mp4toannexb -f mpegts %s", lastFlvFile.c_str(), lastTsFile.c_str()); system(cmd);// 合并ts char cmd[1024] {\0}; sprintf(cmd, "ffmpeg -i concat:\&qu…

怎么樣的理解才是完全理解SQL(二)

如果我們從集合論&#xff08;關系代數&#xff09;的角度來看&#xff0c;一張數據庫的表就是一組數據元的關系&#xff0c;而每個 SQL 語句會改變一種或數種關系&#xff0c;從而產生出新的數據元的關系&#xff08;即產生新的表&#xff09;。我們學到了什么&#xff1f;思考…

Scala學習筆記-環境搭建以及簡單語法

關于環境的搭建&#xff0c;去官網下載JDK8和Scala的IDE就可以了&#xff0c;Scala的IDE是基于Eclipse的。 下面直接上代碼&#xff1a; 這是項目目錄&#xff1a; A是scala寫的&#xff1a; package first import scala.collection.mutable.ListBufferobject A {def main(args…

UVa 12169 (枚舉+擴展歐幾里得) Disgruntled Judge

題意&#xff1a; 給出四個數T, a, b, x1,按公式生成序列 xi (a*xi-1 b) % 10001 (2 ≤ i ≤ 2T) 給出T和奇數項xi&#xff0c;輸出偶數項xi 分析&#xff1a; 最簡單的辦法就是直接枚舉a、b&#xff0c;看看與輸入是否相符。 1 #include <cstdio>2 3 const int maxn …