我正尝试使用此命令通过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那样的第三方,请明确写下带有新手注释的脚本,我对此并不熟悉。
结果比我想象的要简单。为了将来参考,这就是我在终端中所做的:
创建一个新脚本:
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
将自动重启。