我试图记录一个摄像头的视频和音频到一个FLV文件存储在用户的本地硬盘。我有一个使用NetConnection和NetStream将视频通过网络传输到FMS (Red5)服务器的代码版本,但是我希望能够在本地存储视频,以适应低带宽/片状网络的情况。我使用的是FLex 3.2和Air1.5,所以我不认为应该有任何沙箱限制来防止这种情况发生。
我见过的东西:
考虑到我已经有了一个使用NetStream流到服务器的版本,我认为最后一个版本是最有希望的,并将这个演示应用程序组装在一起。该代码编译和运行没有错误,但我没有一个FLV文件的磁盘上的停止按钮被点击。-
<mx:Script>
<![CDATA[
private var _diskStream:NetStream;
private var _diskConn:NetConnection;
private var _camera:Camera;
private var _mic:Microphone;
public function cmdStart_Click():void {
_camera = Camera.getCamera();
_camera.setQuality(144000, 85);
_camera.setMode(320, 240, 15);
_camera.setKeyFrameInterval(60);
_mic = Microphone.getMicrophone();
videoDisplay.attachCamera(_camera);
_diskConn = new NetConnection();
_diskConn.connect(null);
_diskStream = new NetStream(_diskConn);
_diskStream.client = this;
_diskStream.attachCamera(_camera);
_diskStream.attachAudio(_mic);
_diskStream.publish("file://c:/test.flv", "record");
}
public function cmdStop_Click() {
_diskStream.close();
videoDisplay.close();
}
]]>
</mx:Script>
<mx:VideoDisplay x="10" y="10" width="320" height="240" id="videoDisplay" />
<mx:Button x="10" y="258" label="Start" click="cmdStart_Click()" id="cmdStart"/>
<mx:Button x="73" y="258" label="Stop" id="cmdStop" click="cmdStop_Click()"/>
</mx:WindowedApplication>在我看来,上面的代码可能有问题,阻碍了它的工作,或者NetStream不能被滥用在这个录制视频的过程中。
我想知道的是,( a)上面的代码有什么问题(如果有的话)?( b)如果NetStream不支持磁盘记录,是否还有其他选择可以将音频和视频捕获到用户本地硬盘上的文件中?
提前感谢!
发布于 2012-01-17 05:26:07
如果不使用诸如WindowsMedia编码器、Red5或Adobe的媒体服务器等流媒体服务,就不可能将视频直接流到本地磁盘。
我已经在互联网上试过所有的样本,至今还没有解决方案。
请查看此链接,以获得另一种可能性:
http://www.zeropointnine.com/blog/updated-flv-encoder-alchem/
发布于 2012-01-12 17:47:45
我的解决方案是将Red5嵌入空气中。和你分享我的文章
http://mydevrecords.blogspot.com/2012/01/local-recording-in-adobe-air-using-red5.html
通常,解决方案是像资产一样将免费的媒体服务器Red5嵌入AIR中。因此,服务器将出现在AIR应用程序文件夹中。然后,通过NativeProcess,您可以运行Red5并将其实例保存在内存中。因此,您可以在没有任何网络问题的情况下进行本地视频录制。
发布于 2010-03-12 17:33:48
我也在尝试做同样的事情,但是avchat.net的开发人员告诉我,现在不可能用空气来做这件事。如果你知道怎么做的话,我很想知道!
我还找到了这个链接,不确定它对http://www.zeropointnine.com/blog/webcam-dvr-for-apollo/有多大帮助
https://stackoverflow.com/questions/2113080
复制相似问题