1

我正在服务器端录制实时流(使用 FMS 3.5.3)。录制视频时录制停止。我检查了录制的视频长度,总是不同,有时只有 2 分钟,有时 10 分钟,有时 20 分钟

有人遇到过这个问题吗?如果你能帮我解决这个问题,我会很高兴!

代码:

Client.prototype.RecordStart = function()
{
    trace("RecordStart");
    var ns = Stream.get("mp4:test:f4v"); 
    if (ns)
    { 
        ns.record(); 
        ns.play("livestream",-1,-1,false); 
    } 
}

Client.prototype.RecordStop = function()
{
    trace("RecordStop");
    var ns = Stream.get("mp4:test.f4v");
    ns.record(false);
    ns.play(false);
    ns.flush();
}
4

2 回答 2

1

错误就在这里

var ns = Stream.get("mp4:test:f4v");  

它应该是 as"mp4:test:f4v"而不是"mp4:test.f4v".

于 2013-01-29T07:01:34.563 回答
0

以防万一您仍然遇到问题,ctdavids 提供的解决方案在这里:https ://forums.adobe.com/thread/865510为我工作!

问题是

var ns = Stream.get("mp4:test:f4v");

将录制流分配给具有函数内部作用域的 ns 变量。因此,在几分钟内,变量就会被垃圾回收。这将使录制突然停止,没有状态通知或错误消息。

要解决此问题,只需将变量放在全局对象中,例如,

var ns = Stream.get("mp4:test:f4v"); strMaps[recordingStreamName] = ns;

其中 strMaps 是全局变量(对象),recordingStreamName 只是记录的唯一名称。

当您停止录制时,您可以使用删除此全局引用

删除 strMaps[recordingStreamName];

希望这可以帮助!

于 2015-03-06T23:51:20.873 回答