
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
해당 ffplayer
SDP 파일을 사용하여 스트림을 수신할 수 있습니다.