gstreamer srtp for Full HD h.264 video

时间:2017-06-09 12:34:47

标签: video encryption raspberry-pi gstreamer rtp

我正在尝试在Raspberry Pi 3上实现全高清视频会议解决方案。因为我只需要延迟,我只想为音频和视频创建一个简单的pipleline。 我从源代码编译了gstreamer 1.13.0.1,因为raspian存储库中的1.4.4版本已经过时了(G.722编码存在问题)。 我的加密管道似乎有效 - 但我解密的pipline失败了: 加密(运行):

gst-launch-1.0 v4l2src ! \
  'video/x-h264,width=1920,height=1080,framerate=30/1' ! \
  h264parse config-interval=1 ! \
  rtph264pay ! 'application/x-rtp, payload=(int)96, ssrc=(uint)1356955624' ! srtpenc key="012345678901234567890123456789012345678901234567890123456789" ! udpsink host=10.0.0.132 port=5000

解密: 解码:

gst-launch-1.0 udpsrc port=5000 ! 'application/x-rtp,encoding-name=(string)H264,ssrc=(uint)1356955624,srtp-key=(buffer)012345678901234567890123456789012345678901234567890123456789,srtp-cipher=(string)aes-128-icm,srtp-auth=(string)hmac-sha1-80' ! srtpdec ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink
  

0:00:00.234264235 26462 0x156b380错误GST_PIPELINE   grammar.y:726:gst_parse_perform_link:无法将udpsrc0链接到   srtpdec0,srtpdec0无法处理caps application / x-rtp,   encoding-name =(string)H264,ssrc =(uint)1356955624,   srtp-key =(buffer)012345678901234567890123456789012345678901234567890123456789,srtp-cipher =(string)aes-128-icm,srtp-auth =(string)hmac-sha1-80

所以我认为我需要一些额外的上限 - 但是哪个?

1 个答案:

答案 0 :(得分:0)

我也有这个问题,但是添加application / x-srtp不足以为我解决。使用详细的输出和调试警告,我设法将其追溯到缺少的大写字母参数。在查看https://gstreamer-bugs.narkive.com/qAz9lMNM/bug-786304-new-srtpenc-srtpdec-don-t-work之后,我设法通过将srtcp-ciphersrtcp-authroc添加到大写字母来使其工作:

gst-launch-1.0 udpsrc port=5000 ! 'application/x-srtp, payload=(int)96, ssrc=(uint)1356955624, srtp-key=(buffer)012345678901234567890123456789012345678901234567890123456789, srtp-cipher=(string)aes-128-icm, srtp-auth=(string)hmac-sha1-80, srtcp-cipher=(string)aes-128-icm, srtcp-auth=(string)hmac-sha1-80, roc=(uint)0' ! srtpdec ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink