c# - 如何使用带有 Flowplayer 的 RTMP 从 Cloudfront 运行私有(private)内容视频

标签 c# stream rtmp amazon-web-services amazon-cloudfront

重现步骤:

  1. 设置 S3 存储桶
  2. 设置流媒体分发
  3. 生成云端 key 对
  4. 下载带有 RSA 私钥的 .PEM 文件
  5. 使用 http://www.jensign.com/opensslkey/opensslkey.cs 从 RSA key 生成 XML
  6. 上传文件“testUnsecure.flv”,设置ACL属性,方便大家查看。
  7. 使用以下 java 脚本设置网页:

    var p = flowplayer("rtmpPlayer", { src: "flowplayer-3.1.5.swf", height: "480px"}, { 插件:{ rtmp: { url: 'flowplayer.rtmp-3.1.3.swf', netConnectionUrl: 'rtmp://s3py83uop6xa8x.cloudfront.net/cfx/st', 对象编码:'0' } }, 夹子: { 自动播放:假, 网址:'flv:testUnsecure' , 供应商: 'rtmp' } });

  8. 这有效!

然后这样做:

  1. 上传testSecure.flv,设置ACL使其私有(private)
  2. 生成签名 URL 并构建字符串。 javascript 中的 url 如下所示:

url:'flv:testSecure%3fExpires%3d1277469187%26Signature%3dE5OleaO26fwLi6jIKTa4inc8I4P86AgTg5x8SmleTSTyf5C5AfnQyqaFXLDjiF0kiqdplhauA8Kw%7eS37EpRBAn-aJrJScVlw7aZ-SAL24MTLMZ9foSkCd2ai9KjS8AuuweJRwPWmf4eLDpI4X4f3k3H7UUVcq8SX92ed5fCB91w_%26Key-Pair-Id%3dAPKAJUIBASIKTLFDSDFA'

这失败了。视频就卡在那里....

有人知道吗

  1. 使用 C# 为私有(private)视频生成签名 URL?
  2. 在 Flowplayer 或 JWPLayer 中播放视频(我会使用我能使用的任何一个!)

还有几点—— 我使用与此相同的代码来生成签名 URL:http://beckelman.net/post/2010/03/30/Policy-Signing-in-C-for-Streaming-Private-Content-From-Amazon-CloudFront.aspx

如果你们能解决这个问题,我会为住在我 100 英里以内的每个人买一杯饮料。

最佳答案

正确 - 以防万一有人偶然发现这个问题并遇到同样的问题,这就是我所做的修复:

  1. 创建云源访问身份(我通过 C# 完成此操作,但可以使用 cloudberry 完成)
  2. 下载适用于 S3 的 cloudberry - 社区版
  3. 在 cloudberry 的发行版(即流媒体发行版)上找到 FLV 文件,右键单击,然后在属性中确保原始访问身份具有读取访问权限——这是关键位。

否则上面的代码实际上是正确的。

关于c# - 如何使用带有 Flowplayer 的 RTMP 从 Cloudfront 运行私有(private)内容视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3117671/

相关文章:

firefox - JWPlayer 和 HLS 流 - "Error loading player: No playable sources found"

c# - ASP.NET MVC 没有匹配的返回类型

c# - 如何以编程方式查找用于签署给定证书的证书?

c# - 无法通过 TCP/Sockets .net 退出具有多个缓冲区传输的循环

jquery - JPlayer rtmp流媒体问题

ffmpeg - 如何使用 gstreamer (RTMP) 流式传输连接到树莓派的 USB 网络摄像头

c# - 有没有像 C# 的 Twisted Matrix 这样的框架?

c# - 尝试阻止被调用两次

c# - 检索由 BlockCopy 压缩的数组

join - 在 Apache Flink 中合并两个流,无论窗口时间如何