1. 程式人生 > >關於ffmpeg解碼通過UDP協議傳輸的視訊流遇到fifosize 的問題

關於ffmpeg解碼通過UDP協議傳輸的視訊流遇到fifosize 的問題

吐槽一下百度的英文搜尋,簡直是狗屎!還我大谷哥!

最近用ffmpeg解碼udp傳輸的視訊流,經常會碰到提示快取不足的錯誤。由於不太清楚具體程式碼在什麼位置,沒去翻程式碼。


bing搜尋後,在stackoverflow找到了相關解釋,原文地址:http://stackoverflow.com/questions/16944024/udp-streaming-with-ffmpeg-overrun-nonfatal-option

原始碼地址:http://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/udp.c;h=5b5c7cb7dfc1aed3f71ea0c3e980be54757d3c62;hb=dd0a9b78db0eeea72183bd3f5bc5fe51a5d3f537

具體內容:

The same option works from command line or C++ libraries, you need to modify your UDP URL as follows: If you original URL looks like this:

udp://@239.1.1.7:5107

Add the fifo_size and overrun parameters like this:

"udp://@239.1.1.7:5107?overrun_nonfatal=1&fifo_size=50000000"

Remember to escape the URL with quotes.

overrun_nonfatal=1 prevents ffmpeg from exiting, it can recover in most circumstances.

fifo_size=50000000 uses a 50MB udp input buffer (default 5MB)

即,ffmpeg在接收網路協議流時可以在連結上通過fifo_size進行緩衝大小的設定

相關推薦

關於ffmpeg解碼通過UDP協議傳輸視訊流遇到fifosize 的問題

吐槽一下百度的英文搜尋,簡直是狗屎!還我大谷哥! 最近用ffmpeg解碼udp傳輸的視訊流,經常會碰到提示快取不足的錯誤。由於不太清楚具體程式碼在什麼位置,沒去翻程式碼。 bing搜尋後,在stackoverflow找到了相關解釋,原文地址:http://stackove

如何將TS源流重新封裝並通過P2P協議傳輸在安卓終端和蘋果終端播放

ts p2p 直播 什麽是TS流TS流(TransportStream)即在MPEG-2系統中,由視頻,音頻的ES流和輔助數據復接生成的用於實際傳輸的標準信息流稱為MPEG-2傳送流。根據傳輸媒體的質量不同,MPEG-2中定義了兩種復合信息流:傳送流(TS)和節目流(PS:ProgramStrea

python :通過udp協議實現客戶端與服務端的互動

(1)服務端 建立socket 繫結目的ip和埠號、 資料互動 import socket udpSer = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #這裡的SOCK_DGRAM 為udp流 udpSe

Java使用UDP協議傳輸資訊

在網路程式設計當中,存在兩大傳輸層協議,TCP和UDP。 那麼傳輸協議有什麼作用呢,我們都知道,計算機當中的訊號只用0和1,傳輸資訊也往往只用這兩種訊號傳輸。那麼就需要用某種格式,來規範我們發出的資訊。用送信來舉例子的話,我們送一個郵件,除了信裡面的內容以外,信

使用一個簡單的python指令碼將一個本地檔案以碼流的形式,通過UDP協議傳送到對端:

import socket import os import stat import struct MAX_PACK_SIZE = 100 DEST_IP = 'localhost' DEST_PORT = 17800 filename = raw_input("in

第8章 傳輸層(1)_TCP/UDP協議的應用場景

一個數 選擇 str 根據 connect .cn eight 安全 器) 1. 傳輸層的兩個協議 1.1 TCP和UDP協議的應用場景 (1)TCP協議:如果要傳輸的內容比較多,需要將發送的內容分成多個數據包發送。這就要求在傳輸層用TCP協議,在發送方和接收方建立連接

傳輸層(Udp協議 Tcp協議

傳輸層是負責資料能夠從傳送端傳輸接收端。負責端與端之間的傳輸。端與端就相當於是兩個程序之間的資料傳輸。 埠號 埠號是傳輸層協議的內容: 埠號是一個2位元組16位的無符號整數;(0-65535之間一個數字,0-1023不推薦使用) 埠號用來標識一個程序,告訴作業系統,當前資料要交給哪一個程序

TI—CC3200【2】通過UDP傳輸音訊

    手上有一套TICC3200+TLV320AIC3254開發板,這個是TI官方出的一款評估板。     在官方給出的例程裡面只有一個是關於音訊的“wifi_audio_app”,這個例子使用兩塊開發板相互連線後相互傳輸音訊並且播放的。     現在我手上只有一塊開發板

Android使用Socket(Tcp/Udp)協議進行資料傳輸(傳輸大檔案)

Socket是什麼:所謂Socket 通常也稱作”套接字”,用於描述IP地址和埠,是一個通訊鏈的控制代碼。應用程式通常通過”套接字”向網路發出請求或者應答網路請求。Socket內部又有兩種協議(Tcp/Udp),我們來說說其各自的特點。 先來說說網路程式設

傳輸協議——UDP協議

使用者資料報協議UDP: UDP在傳送資料之前不需要先建立連線。遠地主機的運輸層在收到UDP報文後,不需要給出任何確認。 1、UDP的特點: (1)UDP是無連線的。即傳送資料之前不需要建立連線(當然,傳送資料結束時也沒有連線可釋放),因此減少了開銷和傳送資料之前的時延。

計算機網路(七)--使用者資料報協議UDP傳輸控制協議TCP概述

使用者資料報協議UDP只在IP的資料報服務之上增加了很少一點的功能:複用、分用、差錯檢測。 (1)UDP是無連線的,即傳送資料之前不需要建立連線(當然,傳送資料結束時也沒有連線可釋放),因此減少了開銷和傳送資料之前的時延。 (2)UDP使用盡最大努力交付,即不保證可靠交付,

RTSP請求詳解及RTP 基於UDP和TCP協議傳輸資料的對比

最近一段時間一直在研究rtsp和rtp,現在寫部落格總結一下,也是對知識的一種鞏固吧。 下面是我用VLC播放器獲取海康NVR視訊的截圖(此次獲取是基於TCP的): 下面來看一下針對每一條訊息的詳細截圖: 客戶端傳送的OPTION訊息: 伺服器對OPTION回覆的200

ffmpeg解碼RTSP/TCP視訊流H.264(QT介面顯示視訊畫面)

我用的ffmpeg版本為 ffmpeg-2.1.8.tar.bz2 版本低了恐怕有些標頭檔案和API找不到。 在Linux下解壓後編譯,Linux下編譯很簡單,我這裡生成的動態庫: ./configure –enable-shared make 就

gstreamer學習筆記:通過udp傳輸音視訊

一、首先生成一個測試用的avi檔案 (1)播放音樂 gst-launch-1.0 filesrc location=/xxx/xxx.wav ! wavparse ! autoaudiosink (2

mt7628/mt7620實現alsa架構通過ffmpeg解碼並播放音訊

//by Sven之前在評估用MT7628做一個音樂播放器,最初使用ffmpeg+sdl但過程曲折離奇,費了一番折騰最後發現mt7628的效能根本無法支撐ffmpeg的資源訴求,播放出來的聲音一卡一卡的,解碼速度跟不上。 無奈使用了另一替代方案libmad+libao,此方案

在iOS平臺使用ffmpeg解碼h264視訊流

對於視訊檔案和rtsp之類的主流視訊傳輸協議,ffmpeg提供avformat_open_input介面,直接將檔案路徑或URL傳入即可開啟。讀取視訊資料、解碼器初始引數設定等,都可以通過呼叫API來完成。 但是對於h264流,沒有任何封裝格式,也就無法使用libavformat。所以許多工作需要自己手工完

H.264流媒體UDP組播和ffmpeg解碼實驗

簡介:將H.264視訊流從傳送端通過UDP組播到接收端,並通過ffmpeg解碼播放。 分為四步: 1 路由器端區域網下設定虛擬伺服器 2 TCP/UDP通訊測試 3 傳送端與接收端ffmpeg的安裝 4 通過指令對H264流媒體組播和解碼 第一步:區域網下設定虛擬伺服器

[live555] testRTSPClient 通過ffmpeg 解碼(記錄)

live555 獲取每一幀 testRTSPClient 中 Boolean DummySink::continuePlaying() { if (fSource == NULL) return False; // sanity check (should

FFmpeg解碼H264視訊流

1、寫在前面    此文章主要包含解碼H264視訊流資料,主要有以下幾點:        1、H264視訊幀為Annex B格式,若使用AVCC格式可自行研究;        2、H264視訊裸流,非解碼視訊檔案(若有需要我後期可新增這部分程式碼);        3、支援輸

Java udp協議進行傳輸資料

Java中對使用UDP協議進行傳輸的資料,使用DategramSocket和DatagramPacket兩個類來進行處理,其實挺簡單的,在這裡進行一個學習之後的總結。 傳送端的程式碼: publ