好吧,我写了一个完整的答案,推测它与存储桶权限有关,现在我正在抓挠那个答案并发布这个,而不是。:)
$ rtmpdump -r rtmp://s34osaecrafusl.cloudfront.net/cfx/st/vid_test001.flv -o testfile.flv
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
Connecting ...
WARNING: HandShake: client signature does not match!
INFO: Connected...
Starting download at: 0.000 kB
INFO: Metadata:
INFO: duration 13.82
INFO: videocodecid 2.00
INFO: audiocodecid 6.00
INFO: canSeekToEnd FALSE
INFO: createdby AMS 5
INFO: creationdate Tue Dec 03 13:41:46 2013
1190.238 kB / 13.82 sec (100.0%)
Download complete
这实际上对我有用......无论最后是否带有 .flv,生成的文件是一个 7 秒的视频,其中一个人正在看网络摄像头。
使用 Windows 的“smplayer”,我可以使用 rtmp:// url 连接到 cloudfront 并流式传输视频,但它只能在没有.flv 的情况下工作,使用:
MPlayer Redxii-SVN-r36243-4.6.3 (C) 2000-2013 MPlayer Team
Custom build by Redxii, http://smplayer.sourceforge.net
Compiled against FFmpeg version N-52798-gf5846dc
Build date: Sun May 5 23:51:25 EDT 2013
这并不能完全回答您为什么它不起作用的问题,只是说您的播放器似乎在向您撒谎,因为“连接尝试被 FMS 服务器拒绝”,因为至少从这里开始,它很好,除了对于这部分,我不知道这意味着什么。
WARNING: HandShake: client signature does not match!
然而,这可能只是一种干扰。
看起来它会成为你的玩家……所以尝试其他玩家是值得的。
当然,有可能存在涉及您从您所在位置访问的云端特定边缘位置的区域性问题,这可能与我正在访问的位置有很大不同,因为它在地理上......但如果另一个玩家在你所在的地方工作,那么你可能会得到你正在寻找的答案。启动wireshark 并分析协议交换也可能是一个有趣的练习。
事后诸葛亮:路径中的额外斜线也可能让人大吃一惊,因为 RTMP url 显然由两个不同的组件组成,“应用程序”/“流名称”,并且在某种程度上,描述点对于链中的某些组件可能是模棱两可的. 如果云端认为“应用程序”是“cfx”并且流是“st/vid_test001”,但客户端假设“应用程序”是“cfx/st”,流名称为“vid_test001”,那么似乎可能存在一些互操作性的潜力麻烦在那里。这是疯狂的猜测,但也许也值得尝试。