|
楼主 |
发表于 2020-3-27 17:38:01
|
显示全部楼层
我發現如果用gop_cache on;
在直播視訊每個frame會延誤了快30秒
我用ffprobe -loglevel error -skip_frame nokey -select_streams v:0 -show_entries frame=pkt_pts_time -of csv=print_section=0 rtmp://192.168.1.2:1935/myapp/streamflv
0.000000
33.917000
69.833000
每個keyframe平均要30秒
後來我參考 srs官網給的建議在Low_latency的設定
gop_cache off;
queue_length 10;
min_latency on;
mr {
enabled off;ffprobe
}
mw_latency 100;
tcp_nodelay on;
但這個初始化要30秒以上
後來我增加ffmpeg的keyframe頻率
-force_key_frames "expr:gte(t,n_forced*2)"
keyfrmae的頻率 2秒一次
71.156000
73.156000
75.156000
77.156000
發現初始化快了1倍以上,要大概15秒
我再把framerate降一半
原本24 改成12 初始化再少快一半,但還是要七八秒,
我希望控制初始化在3~4秒之內,又要之後的每個framerate <1s,做得到嗎??
因為很多桌面軟體都是啟動1秒就可以看到遠端的畫面
ffmpeg -y -f gdigrab -i desktop -s 1920x1080 -vcodec libx264 -r 24 -preset ultrafast -tune zerolatency -force_key_frames "expr:gte(t,n_forced*2)" -an -f flv rtmp://127.0.0.1:1935/myapp/streamflv
|
|