ffmpeg rtsp 예제

포트 5000에서 스트림을 가져오는 데 사용하는 명령줄, 그것을 트랜스 코딩하고 푸시 : ffmpeg -i `udp://localhost:5000?fifo_size=1000000&overrun_nonfatal=1` -crf 30 -preset 초고속 -acodec aac -엄격한 실험 -ar 44100 -ac 2 -b:a 96k -vcodec libx264 -r264 -b:v 500k-f flv `rtmp:///live/cam0` 라이브 모드에서 송신 함수에 대한 단일 호출 중에 전송된 패킷의 최대 선언 크기를 설정합니다. 이 값이 사용되지 않는 경우(파일 모드에서 기본값) 0을 사용합니다. 기본값은 -1(자동)이며, 일반적으로 MPEG-TS를 의미합니다. SRT를 사용하여 라이브 스트림을 매우 작은 프레임으로 래핑하는 것과 같은 다른 종류의 페이로드를 보내려면 1456바이트보다 크지 않지만 더 큰 최대 프레임 크기를 사용할 수 있습니다. 예를 들어 RTMP 서버 “myserver”에서 응용 프로그램 “vod”에서 “샘플”이라는 멀티미디어 리소스를 ffplay로 읽으려면 : NB는 (직접 쇼 장치의 경우) 해당 예제에서 rtbufsize를 조정해야했습니다. 이 예에서 a = 오디오 프레임, v = 비디오 프레임 및 k = 키프레임. 이 예제에서는 로컬 하드웨어 장치를 캡처하고, 15fps 프레임 속도, 8비트 색상을 사용하고, 스트리밍 세션에 대한 메타데이터가 포함된 SDP 파일을 생성합니다. 옵션은 ffmpeg/ffplay 명령줄에서 설정하거나 AVOptions또는 avformat_open_input을 통해 코드로 설정할 수 있습니다. 그런 다음 다음과 같이받을 수 있습니다 (ffplay 또는 ffmpeg): 예를 들어 파일 split1.mpeg, split2.mpeg, ffplay와 split3.mpeg의 시퀀스를 읽을 수 있습니다 . 설정”하지만 인코딩을 수행하기 위해 훨씬 적은 CPU를 사용합니다.

일부 그래프(약간 오래된 것일 수 있음)는 http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=7&t=631&hilit=mpeg4+libx264+cores&start=10#p2163 를 참조하십시오. 기본적으로 그 특정 테스트에서 그것은 54 fps 에 58 fps (libx264 빠른), 그리고 libx264 파일 은 5.1 MB 와 mpeg4 6MB, 하지만 mpeg4 그것의 계산에 대 한 절반 만큼 CPU를 사용, 그래서 소금의 곡물으로 그것을. 이 예제에서는 Wowza 스트리밍 엔진 설치에 포함된 sample.mp4 비디오를 다시 스트리밍합니다. ffmpeg는 또한 rtmp에 대한 “듣기”옵션이 있으므로 단일 클라이언트에서 “직선”rtmp 스트림을 받을 수 있습니다. 다음은 재생이 어려울 수 있는 라이브 스트림의 예입니다: 다음은 건강한 Apple HLS 스트림을 보여주는 Wowza 스트리밍 엔진 액세스 로그 파일의 예입니다. 이 특정 스트림의 프레임 속도는 29.970 fps와 2초 GOP입니다. 더 자세한 예제에서 /example/server.js 큰 이미지 해상도 또는 IP 카메라 예제 확인/예제/서버-canvas.js FFmpeg를 사용 하 여 스트림을 수신 하는 동안 옵션을 사용 하 여 또한 적은 클라이언트 측 대기 시간 프레임을 볼 수 있습니다. ” ffmpeg … -f sdl “창 제목”(이것은 특히 잘 작동 -fflags 노 버퍼, 내 테스트에서 여전히 mplayer -벤치 마크를 항상 사용하는 것보다 거의 더 대기 시간이지만). 이것은 “CPU가 부족하면 드롭 프레임”옵션이 없으므로 때때로 훨씬 뒤처지수 있습니다 (더 많은 대기 시간을 가변적으로 소개하십시오).

비디오를 녹화하고 out.mp4에 저장 : ffmpeg -f dshow -i 비디오 = “레노버 EasyCamera”out.mp4 여기에 RTSP, RTP, 또는 MPEG-TS 소스 스트림을 트랜스 코딩하기 위해 FFmpeg을 사용하는 몇 가지 예가 있습니다. 호스트가 수신 IP인 http://example.com:1234 예: 터널에 HTTP 프록시를 설정합니다. 그런 다음 해당 포트에서 VLC 또는 ffmpeg를 사용하여 스트림을 수신합니다(rtp는 UDP를 사용하기 때문에 수신기는 언제든지 시작할 수 있음). 패킷 손실(녹색 프레임, 찢어짐/전단-UDP가 배달을 보장하지 않기 때문에 이 문제가 발생할 수 있음)에 문제가 발생하면 먼저 FFmpeg이 pthread 지원으로 컴파일되었는지 확인합니다(이 경우 별도의 스레드를 사용하여 UDP 포트에서 수신할 수 있습니다. 패킷 손실을 줄입니다). udp://host:post?fifo_size=10000(fifo_size를 허용하는 경우, 이동해도 좋임)과 같은 URL을 지정하여 알 수 있습니다.

Share on Google+Share on FacebookTweet about this on Twitter
error: Садржај је заштићен !!