天天看點

ffmpeg硬解碼延遲_測試ffmpeg的解碼效率--為了解決從海康攝像頭視訊流資料的有6秒延時的問題...

進過測試:

1.從檔案中輸入轉rtsp流,在一秒内完成。

in_filename = "D:\\音視訊編解碼知識\\媒體檔案\\VID.flv";//輸入URL(Input file URL)

out_filename = "rtsp://127.0.0.1/test.sdp";

av_register_all();

//Network

avformat_network_init();

if ((ret = avformat_open_input(&ifmt_ctx, in_filename, 0, 0)) < 0) ;

2.從記憶體中讀取視訊流,視訊流來着檔案。

flv檔案

測試結果:1秒内

//讀取本地檔案,模拟遠端視訊流

if (!feof(fp)) {

fread(buf, 1, 2048, fp);

return 2048;

}

ffmpeg硬解碼延遲_測試ffmpeg的解碼效率--為了解決從海康攝像頭視訊流資料的有6秒延時的問題...

PS儲存的檔案:

測試結果也在一秒以内

ffmpeg硬解碼延遲_測試ffmpeg的解碼效率--為了解決從海康攝像頭視訊流資料的有6秒延時的問題...

從上面的結果看出來,ffmpeg在輸入端讀取本地檔案的情況下,解碼效率還是非常高的,都在一秒内完成。進而可以看出,延時6秒的問題還在于視訊流延時的問題。

經過日志列印,最後确定avformat_find_stream_info函數處理非常慢,需要6秒時間。原因是閥值預設設定的太大了。

設定成這樣後,大概延時在2秒左右。

ffmpeg硬解碼延遲_測試ffmpeg的解碼效率--為了解決從海康攝像頭視訊流資料的有6秒延時的問題...