ffmpeg - RTP를 통해 vorbis 코덱으로 오디오 스트리밍

ffmpeg - RTP를 통해 vorbis 코덱으로 오디오 스트리밍

RTP프로토콜과 코덱을 사용하여 스트리밍 오디오를 설정하려고 합니다 Vorbis. 최소한의 예부터 시작하여 동일한 시스템에 송신자와 수신자가 있는 모노 샘플을 생성했습니다( 의 두 인스턴스 ffmpeg, 버전 N-91266-g8c20ea8ee0).

발신자를 먼저 실행하고 SDP를 파일에 저장합니다.

ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -acodec libvorbis -f rtp rtp://127.0.0.1:1234 -sdp_file "g:\sinwave.sdp"

그런 다음 수신자:

ffmpeg -protocol_whitelist "file,udp,rtp" -i "g:\sinwave.sdp" -v debug "g:\1.ogg"

예를 들어 수신된 데이터는 파일에 저장되지만 실제로는 파이프나 소켓에 쓸 계획입니다.)

ffmpeg하지만 수신자 측에서 오류가 발생합니다 .

[sdp @ 0000000000573580] Bad packed header lengths (30,0,2923,3219)
[vorbis @ 0000000000587940] Extradata missing.
Error while opening decoder for input stream #0:0 : Invalid data found when processing input

ffmpeg측면에서 내가 놓친 옵션은 무엇입니까 ?

답변1

매개변수를 사용하여 SDP 파일을 생성하는 것이 제대로 작동하지 않는 것 같습니다 . 다음은 프로세스 출력 리디렉션( 문자) -sdp_file을 사용하여 생성된 SDP 파일에서 보낸 사람에 대한 작업 명령줄입니다 .>

ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -acodec libvorbis
-f rtp rtp://127.0.0.1:1234 > "g:\sinwave.sdp"

결과 SDP 파일의 크기는 4503바이트(4095바이트 대신)이며 더 큰 configuration=줄이 있습니다. 마지막으로 둘 다 ffmpeg해당 ffplayerSDP 파일을 사용하여 스트림을 수신할 수 있습니다.

관련 정보