使用FMS 3.5录制实时流视频



我正在服务器端录制实时流(使用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();
}

错误就在这里

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

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

以防万一您仍然遇到问题,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是全局变量(Object),recordingStreamName只是记录的唯一名称。

停止录制时,可以使用以下命令删除此全局引用

删除 strMaps[录制流名称];

希望这有帮助!

最新更新