保持FFMPEG编码会话正常运行

时间:2016-08-07 07:33:00

标签: bash ffmpeg centos

我正尝试使用此命令通过ffmpeg通过UDP将外部HLS(m3u8)链接编码为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那样的第三方,请明确写下带有新手注释的脚本,我对此并不熟悉。

1 个答案:

答案 0 :(得分:-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 输入保存并退出。

执行以下命令:

chmod +x test.sh
./test.sh

然后,ffmpeg会在发生错误时自动重启。