어떻게 시간 제한을 설정하는 RTMP 스트림는 FFmpeg 명령을 읽어

부제목 :는 FFmpeg 명령은 RTMP는 어떻게 설정 시간 초과로 스트리밍을 기록 할 때 FLV 파일 | 어떻게 기록 생성 막힘의 문제를 해결하기는 FFmpeg 명령  
0x001을 : 소개


프로그램을 테스트하는 동안 오늘은 두 가지 문제가 발생했습니다.
Q1 :는 FFmpeg 때 RTMP 스트림을 기록하고 저장 FLV 파일로, RTMP 스트림을 통해 스레드가 차단 만, 여전히 실이 기록 된 기록 누릅니다.
Q2는 : 언제는 FFmpeg 기록 RTMP 스트림과 FLV 등의 파일 저장의 RTMP를 밀어하지 않는 기록이 방에 유로 여부를 스트림 만, 여전히 실이 기록 된 기록했다.

오랫동안 스트리밍 미디어 서버는 FFmpeg이 걸릴 RTMP에 관계없이 현재의 스트림이 종료되지 않습니다 정상 방문을 끌어 여부, 풀 정상 방문으로 스트림으로하기 때문에 녹화 된 프로그램이 어떤 시점에서 차단 된 로그 파일을 발견 관찰, 검사이다.
예를 들어 : RTMP : //192.168.1.100 1935 / 실시간 /의 changfang, 긴 192.168.1.100:1935 등이 서버 주소에 상관없이 현재 채널의 플러그 흐름에는 changfang이없는 정상적인 통해 요청, FFmpeg은 지금까지 차단한다. 당신은 전체 서버가 다운 넣을 때, 당신은 프로그램이 즉시는 FFmpeg가 더 이상 차단 기록하지 종료됩니다 것을 발견 할 것이다. 이 때, 첫 번째 아이디어는 명령 매개 변수를 설정 시간 제한을 찾는 것입니다.

0x002 : 솔루션


문제가 더 이전의 모습도 비슷한 상황이 발생하지가 발생, 다시 문제를 해결하기 위해 기본 C ++ 코드를 찾는 방법, 더는 FFmpeg 관련 결과를 명령합니다. 그런 다음 발견하기 위해 반복 시도 후, 시간 제한 단어를 찾을 매개 변수를 많이 찾을 명령의 도움말을 볼 수 -rw_timeout을

이 공식 설명입니다 
-rw_timeout         < INT64 >       ED ....... (0 ~ I64_MAX까지) (마이크로) 작업에 대한 IO 시간 제한 (0 기본)


IO는 또한 스트림에 속하는 작업을 읽을 수 있지만 여기에 참고로 두 지점 : 오히려 초 이상의 마이크로 1. 매개 변수. 일초 (들)이 영향을받지 않을 것, 개방 흐름 앞에 삽입 1,000,000 마이크로 (μS) 2. 파라미터 =

변경 전의 명령 (가장 기본적인 떠나는 분석 뷰를 용이하게하기 위해 명령)

는 FFmpeg -i RTMP : //192.168.1.100 : 복사 -c 1935 / 라이브 /의 changfang -f FLV /opt/video/123.flv

명령의 변경 후 :

는 FFmpeg -rw_timeout 5000000 -i RTMP : //192.168.1.100 : 복사 -c 1935 / 라이브 /의 changfang -f FLV /opt/video/123.flv


이 방법에 관계없이 최종 플러그 흐름의 또는 전혀만큼 FFmpeg에 개방 흐름을 초 단위로, IO 작업이 세트가 자동으로 종료 초과 스트림을 통해 밀었다. (당신이 읽는다면 스트림의 흐름은 네트워크 외부 또는 네트워크가 생성 오픈 흐름에서 FLV 녹화 파일을 레코딩는 FFmpeg 시간이 걸리기 때문에, 당신은 너무 짧은이 시간을 넣어하지 않는 것이 좋습니다, 케이스의 흐름을 원활하게되지 않음)

 

0x003 : 끝


이 문제가 발생하는 일이, 내가 당신을 도울 수 있도록 노력하겠습니다!


추천

출처www.cnblogs.com/zhifa/p/12345376.html