最近在做一个有关视频直播和点播的项目,客户的一个需求就是可以控制对直播流的录制,直播的实现采用的是Adobe的Flash Media Server,具体方式就是:视频采集端采集视频并编码->rtmp流输出->FMS服务器->rtmp流广播->客户端播放器 加载rtmp流->播放;直播流的录制采用在FMS服务器上录制的方式,而不是在视频采集设备端进行录制。

由于客户要求进行可控录制,所以不能采用那种在视频流发送端就写好参数如: nc.publish("livestream","record") 的方式,而是采用了Adobe提供的一个用于FMS的Application,叫做dvrcast,它的实现实际是写了好多的FMS服务器端的as代码 (.asc格式的文件),通过调用FMS服务器端的Stream类的record方法来进行录制,通常record方法会录制为.flv文件,最近通过查 看FMS自带的一些开发文档,终于搞清楚了如何将视频流录制为.mp4文件,具体方法如下:

假设 视频采集端发过来的视频流是livestream,如  nc.publish("livestream","live");//采用直播模式发送

在服务器端想对该视频进行录制,则使用如下代码:

s=Stream.get("mp4:yourRecordName.mp4");//获取一个Stream对象,注意参数,录制mp4或f4v文件时,必须加前缀"mp4:",yourRecordName是你想保存的名字

if(s){

s.record("record");//开始录制,"record"参数可选,表示如果存在yourRecordName.mp4文件,会进行覆盖

s.play("livestream");//此句比较重要,如果不写的话,你会发现所创建的.mp4文件体积不变,此句代码相当于FMS服务器端接管了livestream流的publish工作,因为服务器端的play方法优先于视频采集端的publish方法

}

如果想停止录制,则代码如下:

s=Stream.get("yourRecordName");//可以写"mp4:yourRecordName.mp4",也可以只写yourRecordName

if(s) s.record(false);//停止录制

所录制的视频文件可以通过FMS服务器进行点播播放。

使用Flash Media Server(FMS)录制mp4格式的视频的更多相关文章

  1. Flash Media Server 5.0 (FMS)注册码

    flash media server 4.5 及最新 flash media server 5.0 注册码 防止图片打不开时: Name:tam/CORE Serial:1652-5580-8001- ...

  2. Adobe Flash Media Server安装

    Flash Media Server(FMS)是一个流媒体服务器 使用 实时消息传送协议(RTMP),RTMP是一种未加密的TCP/IP协议,专门设计用来高速传送音频.视频和数据信息. 3.5版32位 ...

  3. (转)ubuntu 12.04搭建Adobe Flash Media Server服务

    破解版传送门:http://fms45.cuplayer.com/fms4download.html 福利:1462-5247-1705-7678-8379-5590 下载解压 cd进目录,./ins ...

  4. Video标签播放视频?谷歌浏览器?safari?? 谷歌浏览器播放不了mp4格式的视频的原因

    webm格式和mp4格式,判断了浏览器能否支持的视频类型后,给了一个if判断,如果是支持mp4格式,就返回视频后缀mp4,如果是webm,就返回后缀webm.结果,在谷歌浏览器中播放不了,为什么我指定 ...

  5. Adobe/Flash Media Server 5.0 linux 64位系统下的安装

    一.下载 Adobe/Flash MS5.0下载地址: http://fs1.d-h.st/download/00036/VOt/adobemediaserver_5_ls1_linux64.tar. ...

  6. Flash Media Server 4.0 破解 注册

    Adobe Flash Media Interactive Server 3.5s/n:1373-5047-2985-0514-5175-0098 s/n: 1373-5632-4666-9521-8 ...

  7. mp4格式的视频,编码方式mpeg4,转化为h264

    知识点:在使用vcastr3.swf播放器播放flv视频,(同时在html5页面,使用<video>标签时),发现某些MP4格式的代码不能播放 原因:vcastr3.swf和video,不 ...

  8. Flash Media Server 4.5 序列号 (fms4.5 激活码)

    激活码一枚   ,网上找不到的..我今天放出来了哦... 1462-5864-7783-6034-8316-3718    (亲测 可用) 安装前找到系统盘下windows/system32/driv ...

  9. ueditor不能上传mp4格式的视频--解决方案

    1.ueditor.all.js 去掉所有的 type="application/x-shockwave-flash" 2.ueditor.all.min.js 去掉所有的 typ ...

随机推荐

  1. java synchronized 同步详解

    记下来,很重要. Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并发线程访问同一个对象object中的这个synchron ...

  2. 09 shell脚本程序练习

    练习1:写一个脚本程序,完成以下任务 1.添加五个用户,user1.user2.user3.user4.user5: 2.添加之前先判断是否存在该用户,如果存在则显示“某某用户已存在”: 3.每个用户 ...

  3. APIO 2018选圆圈

    #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #i ...

  4. vue2.0过滤器

    最近一阶段,项目上比较清闲,有了更多的时间可以研究一下vue了. 这里记录一下关于vue2.0过滤器的学习. vue2.0删除了所有的框架自带的过滤器,也就是说,如果你在vue2.0当中想用过滤器,那 ...

  5. 运行vbs脚本

    VBS是基于Visual Basic的脚本语言. VBS的全称是:Microsoft Visual Basic Script Edition.(微软公司可视化BASIC脚本版). 其语言类似Visua ...

  6. Java的字符串

    1.String 类 2.StringBuilder 类 1.String类 1.1.构造方法 String的构造方法格式 说明 new String(String st) 把字符串数据封装成字符串对 ...

  7. HashMap扩容机制

    1.什么是resize: resize就是重新计算容量:当我们不断的向HashMap对象里不停的添加元素时,HashMap对象内部的数组就会出现无法装载更多的元素,这是对象就需要扩大数组的长度,以便能 ...

  8. gentoo moc audacious

    最近想在 gentoo 上面听音乐, 以前用过 audacious,现在想换成 moc 试试看. emerge -av moc,结果安装完了以后,放 mp3 没有声音,把 USE 里面各种相关解码的都 ...

  9. My sql 自增 虚拟列。

    在MYSQL 是没有类似MSSQL 2008 / oracle 数据库开窗函数 over() ,rank(), DENSE_RANK() ,ROW_NUMBER() 又叫窗口函数 . 当我们需要在查询 ...

  10. ROS Industrial 简介

    ROS_I means ROS Industrial ROS_I 解决了哪些问题: 1. 让自动化可以互相协作,操纵器.末端执行器.感知系统/传感器,移动平台,周边设备,都可只用一种语言(ROS me ...