FLEX 截图crtmpserver服务器的rtmp流视频报 SecurityError: Error #2123

去年11月份开始来到这家新公司,做视频监控的

而我负责做WEB观看端,之前是说视频播放用flash来做,然后界面的话直接用原生的HTML

后来就温习了CSS js jq ajax...... 还有dwr

也做了一个类似的小Demo出来,当然没什么功能,只能播放rtmp视频流而已

后来今年回来说都用Flex做,到现在3 、4个月了,功能差不多实现了

还差一个视频截图加一个视频录像的功能,昨天开始做截图,网上找方法,还挺简单的

但是应用到视频截图就报错了:

SecurityError: Error #2123: 安全沙箱冲突:BitmapData.draw:
XXX 不能访问 rtmp://XXXXX。未被授权访问任何策略文件。

网上也很多人遇到这个问题,说的方法但是都没有解决我的问题

由于我们的视频服务器是用Crtmpserver,网上的解决办法大多是FMS的

就在今天中午,无意间再次谷歌了下错误,找到一个人跟我的一模一样的实现方式,和同样的错误

https://groups.google.com/forum/#!msg/c-rtmp-server/aACuxdF0Azw/mzkphlQHYeoJ

我把解决办法摘抄上来

That worked beautifully, though I had to do a little more work then

that.

in void BaseOutNetRTMPStream::SignalAttachedToInStream(), I added the

following code after stream begin to allow Video samples:

+        //XXX. notify |RtmpSampleAccess

+    /*

+        message = StreamMessageFactory::GetNotifyRtmpSampleAccess(

+                        _pChannelVideo->id, _rtmpStreamId, absoluteTimestamp, false, true,

true);

+        TRACK_MESSAGE("Message:\n%s", STR(message.ToString()));

+        if (!_pRTMPProtocol->SendMessage(message)) {

+                FATAL("Unable to send message");

+                _pRTMPProtocol->EnqueueForDelete();

+                return false;

+        }

+  */

+

Also in the same method, changed the same call for the audio channel:

//10. notify |RtmpSampleAccess

message = StreamMessageFactory::GetNotifyRtmpSampleAccess(

_pChannelAudio->id, _rtmpStreamId, 0, true, true, true);

TRACK_MESSAGE("Message:\n%s", STR(message.ToString()));

if (!_pRTMPProtocol->SendMessage(message)) {

FATAL("Unable to send message");

_pRTMPProtocol->EnqueueForDelete();

return;

This works perfectly to get Flash BitmapData.draw() to work on the

RTMP stream. I suggest this be integrated as a configuration option to

each application so it would be possible to do something like from the

app configuration:

{

description="FLV Playback Sample",

name="flvplayback",

protocol="dynamiclinklibrary",

aliases=

{

"simpleLive",

"vod",

"live",

"WeeklyQuest",

"SOSample",

"oflaDemo",

},

acceptors =

{

{

ip="0.0.0.0",

port=1935,

protocol="inboundRtmfp"

},

{

ip="0.0.0.0",

port=6666,

protocol="inboundLiveFlv",

waitForMetadata=true,

},

{

ip="0.0.0.0",

port=9999,

protocol="inboundTcpTs"

},

--[[{

ip="0.0.0.0",

port=554,

protocol="inboundRtsp"

},]]--

},

externalStreams =

{

validateHandshake=true,

keyframeSeek=true,

seekGranularity=1.5, --in seconds, between 0.1 and 600

clientSideBuffer=12, --in seconds, between 5 and 30

allowVideoSampleAccess=true,

allowAudioSampleAccess=true,

},

A big thanks for pointing me in the right direction!

上面是那位外国仁兄解决办法:特此记录下(就是把上面加粗的代码放到你的视频服务器代码中,具体我不清楚,我不会C++)

剩下最后一个 视频录像的功能了,唉不知道怎么实现

FLEX 截图crtmpserver服务器的rtmp流视频报 SecurityError: Error #2123,码迷,mamicode.com

时间: 2024-10-21 16:26:49

FLEX 截图crtmpserver服务器的rtmp流视频报 SecurityError: Error #2123的相关文章

videojs修改播放器样式并实现四路动态播放rtmp流视频

接了个无人机的项目,负责视频播放这一块,选用的是video.js这个视频插件,本以为可以开开心心的开发,谁怎料网上有关这部分的资料如此之少,给我这个伸手党给予了重大压力.好了,不说废话了. 项目的需求为实现一个能四路播放的播放器,能播放无人机拍摄的实时画面,并且能够做到局部刷新而不影响整个页面,并且要能够动态的切换视频流的来源,比方说有一架无人机在你播放视频时起飞了,那么你所能切换的视频流中就应该具备该无人机的rtmp流. 实现过程,化大为小,不断迭代,先实现一路播放,再扩展为四路,再实现无刷新

ffmpeg推rtmp流到crtmpserver直播

1. 项目需要使用ffmpeg推rtmp流至crtmpserver,然后直播./usr/bin/ffmpeg -re -loop 1 -i tmp/234.jpg -r 10 -f flv rtmp://127.0.0.1:8085/live/phone-234 2. 下载crtmpserver源码,官网(http://www.rtmpd.com/)经常上不去,去github下载https://github.com/j0sh/crtmpserver 3. 需要安装cmake然后编译.yum in

Android 音视频深入 十七 FFmpeg 获取RTMP流保存为flv (附源码下载)

项目地址https://github.com/979451341/RtmpSave 这个项目主要代码我是从雷神那弄过来的,不愧是雷神,我就配个环境搞个界面就可以用代码了. 这一次说的是将RTMP流媒体保存成为一个本地的FLV文件.因为播放视频本身占有很多技术难点,我先不做边获取RTMP流边播放了,这一次主要说如何获取RTMP流. 说说代码 初始化组件和网络环境 av_register_all(); //Network avformat_network_init(); 打开RTMP流,获取RTMP

视频转换 rtsp 流 转rtmp流播放(未完)

前言:之前的博客找的rtsp流地址,和按照red5 都是为写这篇文章铺垫. 这篇文章,选择 ffmepg命令 把rtsp流转为rtmp, 接着vlc插件测试下生成的rtmp流. 最后 已经配置好了red5 服务器,并测试成功看到画面之后: 下面就来利用red5 实时查看rtmp 视频流:总体思路是这样. 原文地址:https://www.cnblogs.com/yizhizhangBlog/p/9953675.html

如何在IE浏览器播放RTSP或RTMP流(RTSP/RTMP OCX控件)

好多开发者一直苦恼于如何在IE浏览器环境下,构建低延迟的RTSP或RTMP播放,对于RTSP流来说,好多公司通常的做法是把RTSP转RTMP,然后分发到RTMP服务器,然后服务器转http-flv出来,浏览器直接播放http-flv流,亦或通过flash控件直接播放RTMP流,还有就是,转hls流出来,缺点是hls流延迟更大. 以上方案未尝不可,如果对播放体验和延迟要求更高,最简单的做法是直接在IE浏览器下加载activex控件,扩展了ocx控件,用于IE浏览器下的低延迟RTMP或RTSP播放.

iOS:基于RTMP的视频推流

iOS基于RTMP的视频推流 一.基本介绍 iOS直播一出世,立马火热的不行,各种直播平台如雨后春笋,正因为如此,也同样带动了直播的技术快速发展,在IT界精通直播技术的猴子可是很值钱的.直播技术涉及的知识面很广,最主要的大概就是这几个:软硬解码.h264.美颜处理.推流RTMP.拉流播放.视频录制.发送弹幕.即时通讯. 二.常用技术 软硬解码.h264:使用iOS8.0之后苹果开源的VideoToolBox,这正是很多直播软件最低兼容iOS8的原因了 美颜处理:CPUImage,内置150多种滤

广电电视信号如何生成RTMP流进入流媒体系统网络分发实现手机APP播放

随着网络宽带业务和数字电视的普及,家家户户都已经在用IPTV/OTT-TV的方式来看电视节目.但是从音视频的画面质量来看,广电系统的电视信号质量最佳,可以真正实现1080P网络电视画面质量甚至是H.265 HEVC的4K超高清. 随着技术的越来越进步,手机移动端的观看用户越来越多,已经渐渐形成趋势. 未来的观看人群在移动端火车上,地铁上,公交车上等等.那么如何将广电系统的电视信号转换成RTMP进入流媒体系统在互联网上进行分发,最终实现用苹果手机和安卓手机观看呢? 先来看下广电的电视信号的前端设备

Android 如何直播RTMP流

在android上,视频/音频流直播是极少有人关注的一部分.每当我们讨论流媒体,RTMP(Real Time Messaging Protocol)是不可或缺的.RTMP是一个基本的视频/音频直播流协议,但是不幸的是Android标准的VideoView不支持RTMP的播放.因此,如果想在android上播放RTMP直播流,你必须使用支持RTMP协议的库.  库播放由 RTMP 协议传输的流媒体. Android Vitamio 库 Vitamio是一个android和ios上基于FFmpeg的

使用FFMPEG在windows平台下推rtmp流

使用FFMPEG在windows平台下推rtmp流 工作中习惯在Linux下面使用FFmpeg模拟推rtmp流,无奈家中的电脑都是windows系统,需要利用家中的带宽来测试流媒体服务器的性能.所以研究了一下如何在windows系统中快速推流. 首先下载安装ffmpeg 下载windows下的FFMPEG压缩包,解压到当前目录,见下图(如何快速截图并上传到图传?) 我们使用的是ffmpeg-20180429-19c3df0-win64-static\bin路径下的ffmpeg.exe文件. 写两