保持FFMPEG编码会话运行

问题描述 投票:0回答:1

我正尝试使用此命令通过ffmpeg将外部HLS(m3u8)链接编码为UDP-MPEG-TS:

ffmpeg -re -i http://example.com/index400.m3u8 -vcodec copy -acodec copy -f mpegts udp://127.0.0.1:10000?pkt_size=1316

目前我正在终端内执行命令,我在Centos服务器上保持打开状态。但是,经过一段时间(易变)后,我收到以下错误:

无法解析主机名example.com:名称解析暂时失败 [hls,applehttp @ 0x349b420]无法重新加载播放列表0

我的问题是,如何在bash脚本或upstart或...中运行此命令,以便每当它意外停止时,它会自动重新启动。我不想使用像monit那样的第三方,请明确写下带有新手注释的脚本,我对此并不熟悉。

bash ffmpeg centos
1个回答
-1
投票

结果比我想象的要简单。为了将来参考,这就是我在终端中所做的:

创建一个新脚本:

vi test.sh

插入以下代码:

#!/bin/bash
while :
do
  echo `ffmpeg -re -i http://example.com/index400.m3u8 -vcodec copy -acodec copy -f mpegts udp://127.0.0.1:10000?pkt_size=1316`
done

按Esc W Q Enter保存并退出。

执行以下命令:

chmod +x test.sh
./test.sh

并且,当发生错误时,ffmpeg将自动重启。

© www.soinside.com 2019 - 2024. All rights reserved.