ffmpeg 스트리밍 예제

다음은 재생이 어려울 수 있는 라이브 스트림의 예입니다: ffmpeg에는 rtmp에 대한 “듣기” 옵션이 있으므로 단일 클라이언트에서 “직선” rtmp 스트림을 받을 수 있습니다. 때로는 오디오 코덱이 자신의 일부 대기 시간을 소개합니다. libmp3lame 대신 speex 또는 오푸스를 사용하여 대기 시간을 줄일 수 있습니다. 일반적으로 ffmpeg를 설치하는 것은 곧게 앞으로 해야 합니다. 그러나 첫 번째 샷에서 성공적으로 설치되지 못하게하는 몇 가지 문제가있을 수 있습니다. 예를 들어 ffserver 구성 파일에 정의된 적절한 스트림 요소가 있는 경우 입력할 수 있습니다: 아래 예제에서는 libx264 및 libfaac 인코더를 사용하여 `source.mp4`를 TS 세그먼트로 변환하는 방법을 보여 줍니다. “네이티브 프레임 속도로 입력을 읽습니다. 주로 그랩 장치를 시뮬레이션하는 데 사용됩니다.” 즉, 비디오 파일을 스트리밍하려는 경우, 그렇지 않으면 너무 빨리 스트리밍 할 수 있습니다 (기본적으로 라인 속도로 스트리밍하려고 시도). 내 생각엔 당신은 일반적으로 라이브 장치에서 스트리밍 할 때이 플래그를 사용하지 않으려는 것입니다. 피드 요소는 하나의 입력 소스를 하나 이상의 출력 스트림과 연결하는 데 목적이 있는 ffserver의 내부 부분입니다. 피드를 더 많은 출력 스트림과 연결할 수 있는 기능은 여러 가지 출력 형식(예: 풀 HD 비디오 스트리밍 및 소규모 미리 보기 비디오 스트리밍)을 사용하여 하나의 입력 소스(예: 오디오가 있는 웹캠)를 스트리밍하려는 경우에 유용합니다.

휴대 전화)를 동시에 사용하십시오. 곧 각 피드 요소는 각 입력 소스를 논리적으로 나타냅니다. 그것은 당신이 당신의 오디오 / 비디오 소스를 연결하는 ffserver의 “입력 잭”으로 간주 될 수있다. 다음은 ffmpeg 1.0 또는 ffmpeg-git (2012-11-12에서 테스트됨)을 사용하여 twitch.tv 또는 유사한 서비스 (rtmp 프로토콜)로 스트리밍하는 방법입니다. 이 방법을 사용하면 librtmp 라이브러리를 통해 RTMP 비디오를 스트리밍할 수 있습니다. 이렇게 하려면, 우리는 우리의 예제 배포로 우분투를 사용 합니다. 마지막으로, 시스템의 루트 디렉토리에 ffmpeg를 설치하려면이 코드를 사용: 인터넷을 통해 오디오 / 비디오 콘텐츠를 스트리밍해야하는 경우, 당신은 일반적으로 스트리밍 (방송) 서버가 필요합니다, 그 중 하나는 ffserver입니다. 여러 입력 소스(일반적으로 ffmpeg 응용 프로그램)를 수집하고 여러 출력 스트림을 사용하여 각각의 트랜스코드/remux/브로드캐스트를 수집할 수 있습니다.

간단한 다이어그램은 아래 이미지에 표시됩니다 : 이러한 요소는 ffserver 도구의 내부 구조의 일부가 아니라 배포 될 ffserver에 오디오 / 비디오 스트림을 보낼 수있는 외부 응용 프로그램 (일반적으로 ffmpeg)을 나타냅니다. 모든 시청자(미디어 플레이어)를 시청할 수 있습니다. ffmpeg는 주로 입력 소스로 사용되므로 이 문서에서 설명하겠습니다. 이 예제에서는 사용자 인증, 레벨 3.0 로깅 세부 정보, 24fps 프레임 속도, 2초 키프레임 주파수, 310kbps 비트레이트 및 44.1kHz 스테레오 오디오를 사용하여 sample.mp4를 다시 스트리밍합니다. 그런 다음 다음과 같이받을 수 있습니다 (ffplay 또는 ffmpeg): 스트림이 (사용 된 인코딩 및 캐싱 적용에 따라) 초 만에 비교적 곧 나타납니다. 이 예제에서는 모든 것이 컴퓨터에서 실행되고 있음을 의미하는 호스트 이름 “localhost”를 사용했지만 라이브 온라인 ffserver에서 스트림을 확인해야 하는 경우 “localhost”를 ffserver 컴퓨터의 실제 호스트 이름 또는 IP 주소로 변경해야 합니다. ffmpeg에 대한 자세한 내용은 https://trac.ffmpeg.org/. 이 예제에서는 구성 파일에 정의된 최소한 다음 사항이 필요합니다(세 개의 점 “…” 이 항목과 관련이 없는 다른 데이터를 나타냅니다: 위의 명령을 입력하자마자 ffmpeg에서 입력 스트림에 대한 몇 가지 통계를 표시하고 출력 프레임을 계산하는 것을 볼 수 있습니다.

Posted in Uncategorized