ffmpeg - 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
解决方案
推荐阅读
- python - 如何使用 Mac 终端将 python 3.6 更新到 3.7
- azure - 使用 Azure 媒体编码器进行编码时出错
- digital-ocean - Eacces 权限被拒绝 ghost digitalocean
- c++ - 错误:没有匹配函数调用 'std::vector
::push_back(y&) 在 C++ 中 - python - 如何装饰子类中的所有继承方法
- java - 带扫描仪的 Java 打印表
- terraform-provider-azure - Azure 发布管道报告所需的变量未设置也称为卸载以定位/加载“秘密”变量组变量
- javascript - Heroku 给出 ReferenceError 并且在节点应用程序上无法识别“$”
- ruby-on-rails - 如何用erb在一行上写一个枚举
- linux - 在 Linux 内核中使用“sched_setaffinity()”