通过将SDP文件作为内联数据传递来加入ffmpeg中的视频流

时间:2017-08-27 17:29:43

标签: ffmpeg

下午。 使用ffmpeg我可以使用以下语法打开SDP文件:

ffmpeg -protocol_whitelist file -i file.sdp

有没有人知道是否可以在没有先将内容写入文件的情况下加入sdp文件中描述的流?

因此,例如,如果SDP文件内容是:

v=0
m=video 1234 RTP/AVP 96
c=IN IP4 232.1.2.3
a=rtpmap:96 MP4V-ES/90000
a=source-filter: incl IN IP4 232.1.2.3 1.2.3.4

我可以使用此处描述的数据输入类型: https://ffmpeg.org/ffmpeg-protocols.html#data

要加入相同的流,例如:

ffmpeg -protocol_whitelist data -i "data:application/sdp;charset=UTF-8,v=0 \r\n...."

答案/似乎/不是,但我想我会问"互联网"如果我只是做错了......

2 个答案:

答案 0 :(得分:2)

您可以将SDP文件内容传送到ffmpeg,如下所示。

printf "SDP:\nv=0\nm=video 1234 RTP/AVP 96\nc=IN IP4 232.1.2.3\na=rtpmap:96 MP4V-ES/90000\na=source-filter: incl IN IP4 232.1.2.3 1.2.3.4\n" | ffmpeg -i - -codec copy output.mp4

答案 1 :(得分:0)

有一个示例如何通过将SDP内容指定为参数来使用ffmpeg消耗AAC音频流。输出格式为WAV并发送到stdout。

-protocol_whitelist data,rtp,udp -i "data:application/sdp;charset=UTF-8,v=0
c=IN IP4 127.0.0.1/64
b=AS:4000
m=audio 1100 RTP/AVP 99
a=rtpmap:99 mpeg4-generic/44100/2
a=fmtp:99 streamtype=5; profile-level-id=15; mode=AAC-hbr; config=121000; 
sizeLength=13; indexLength=3; indexDeltaLength=3"
-y -f wav pipe:1

使用换行符:\ n

相关问题