首页 > 解决方案 > Ffmpeg rtmp 到 hls 的转换但是如何解决网络问题?

问题描述

我正在尝试从 rtmp 源转换 hls 流并且它工作正常,但问题是当 rtmp 服务器关闭或网络问题时,ffmpeg hls 转换过程卡住并且即使 rtmp 服务器重新上线也永远不会再次工作。

我试过了

-reconnect_at_eof 1 -reconnect_streamed 1 -reconnect_delay_max 5 

命令 - 它说选项不是通过我使用 ffmpeg [v4.2.1] 的方式识别的选项。

我正在使用以下 ffmpeg 命令

ffmpeg -i rtmp://localhost/living/test  ^
-max_muxing_queue_size 9999  ^
-async 1 -vf yadif -g 29.97 -r 23 ^
-b:v:0 3150k  -c:v libx264  -filter:v:0 "scale=426:-1" -rc:v vbr_hq -pix_fmt yuv420p -profile:v main -level 4.1 -strict_gop 1 -rc-lookahead 32 -no-scenecut 1 -forced-idr 1  -b:a:0 128k -map 0:v -map 0:a:0 ^
-b:v:1 4200k  -c:v libx264 -filter:v:1 "scale=640:-1" -rc:v vbr_hq -pix_fmt yuv420p -profile:v main -level 4.1 -strict_gop 1 -rc-lookahead 32 -no-scenecut 1 -forced-idr 1   -b:a:1 192k  -map 0:v -map 0:a:0 ^
-b:v:2 5250k  -c:v libx264 -filter:v:2 "scale=1280:-1" -rc:v vbr_hq -pix_fmt yuv420p -profile:v main -level 4.1 -strict_gop 1 -rc-lookahead 32 -no-scenecut 1 -forced-idr 1  -b:a:2 256k -map 0:v -map 0:a:0 ^
 -c:a aac -ar 48000    ^
-f hls ^
-var_stream_map "v:0,a:0  v:1,a:1 v:2,a:2" ^
-master_pl_name  index.m3u8 ^
-t 30000 -hls_time 10 ^
 -hls_init_time 4 -hls_list_size 0 ^
-master_pl_publish_rate 10 ^
-hls_flags delete_segments+discont_start+split_by_time "../live/test/vs%%v/manifest.m3u8" 
pause

标签: ffmpeghttp-live-streamingrtmphlsl

解决方案


推荐阅读