【问题标题】:FFmpeg stream encryptionFFmpeg 流加密
【发布时间】:2017-10-18 01:22:42
【问题描述】:

我正在做一个项目,其中必须以安全的方式将流实时传输到服务器。

正如在文档中可以找到的那样,可以使用以下方法对流进行“加密”:

  1. srtphttps://www.ffmpeg.org/ffmpeg-protocols.html#srtp

    这工作正常,但速度和质量不是那么好。 (延迟 3 秒)。我会很感激改进(见下文)

  2. tls 使用证书 (https://www.ffmpeg.org/ffmpeg-protocols.html#tls)

    tls 究竟是什么?它甚至是加密还是只是为了验证流来自正确的来源?

我还能用什么来获得足够的质量和速度?


PS:带有 AES 的 SRTP 命令延迟 3 秒:

ffmpeg -r 24 -f x11grab -s 1280x1024 -i :0.0 -c:v libx264 -crf 35 -pix_fmt yuv420p -threads 4 -preset fast -tune fastdecode -bsf:v h264_mp4toannexb -movflags +faststart -f rtp_mpegts -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz "srtp://10.0.0.100:8888"

我用ffplay输出:

ffplay -srtp_in_suite AES_CM_128_HMAC_SHA1_80 -srtp_in_params zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz srtp://client:8888 -fast -fs

【问题讨论】:

    标签: video encryption ffmpeg stream video-streaming


    【解决方案1】:

    两种协议之间的差异非常小,技术上的差异非常小,但它们是不同的标准。 TLS 使用更强大的加密算法,并且能够在不同的端口上工作。此外,TLS 1.0 版不与 SSL 3.0 版互操作。

    Netscape 最初开发了 SSL(安全套接层)协议,用于私密传输信息,确保消息完整性,并保证服务器身份。 SSL 主要通过对数据使用公钥/私钥加密来工作。它通常用于 Web 浏览器,但 SSL 也可用于电子邮件服务器或任何类型的客户端-服务器事务。例如,一些即时消息服务器使用 SSL 来保护对话。

    互联网工程任务组 (IETF) 创建了 TLS(传输层安全性)作为 SSL 的继任者。它最常用作电子邮件程序中的设置,但与 SSL 一样,TLS 可以在任何客户端-服务器事务中发挥作用。

    【讨论】:

    猜你喜欢
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多