2016-08-07 2 views
0
I 외부 HLS를 인코딩하는 것을 시도하고

(M3U8) 링크를 실행 FFMPEG 부호화 세션 유지 MPEG-TS를 통해 UDP 명령으로는 FFmpeg들을 통해

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

현 I가 단말기 내부에 직접 명령을 실행하고있는 내 Centos 서버에서 계속 열어 둡니다. 그러나, 일부 시간 (휘발성), 나는 다음과 같은 오류가 발생 후 :

호스트 이름 example.com를 해결하지 못했습니다 이름 확인에 임시 실패
[HLS, applehttp @ 0x349b420] 재생 목록 0

를 다시로드하지 못했습니다

제 질문은 어떻게하면 bash 스크립트 나 upstart에서이 명령을 실행할 수 있습니까? 예기치 않게 멈 추면 자동으로 다시 시작됩니다. 나는 monit과 같은 제 3자를 사용하지 않기를 바라고 있으며, 초보자를위한 주석으로 스크립트를 작성하는 데 명시해야한다. 나는 이것에 대해 잘 경험하지 못했다.

+1

무한 루프를 사용하지 않는 이유는 무엇입니까? '진실한 동안; do ffmpeg ....; 다. 이렇게하면 cmd가 실행되고 cmd가 종료되거나 실패 할 때 다시 시작됩니다. 행운을 빕니다. – shellter

답변

-1

내가 생각했던 것보다 더 간단 해졌습니다.

은 새 스크립트 만들기 : 미래 참고로, 이것은 내가 터미널에서, 무슨 짓을

#!/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 :

vi test.sh 

을 다음 코드를 삽입 Q저장하고 종료하려면을 입력하십시오.

다음 명령을 실행 오류가 발생하면

chmod +x test.sh 
./test.sh 

봐라, ffmpeg가 자동으로 다시 시작됩니다.

+4

cmd 치환으로'echo'가 필요하지 않고'ffmpeg' 만 실행하면 되겠습니까? 행운을 빕니다. – shellter