视频转换和视频直播
2015-08-06 21:02
302 查看
视频的转换
直播视频
浏览器播放器
jwplayer的使用方法
SewisePlayer的使用方法
VLC的使用方法
flash对rtsp-tcp的支持研究
视频转换的过程:用户上传视频 —> 存入django —> 触发转换 —> 用ffmpeg来做(拆分视频、转换、合并) —> 返回合并后的视频地址;
为了转换成浏览器可播,转换成两种格式:hls和mp4;(为了兼容)
HLS-apple技术主要用于PC和APPLE终端音视频服务。html5直接支持;包括m3u8文件+TS媒体文件+key加密串;支持直播
mp4:pc|apple|android都支持,文件头大,结构复杂,长视频不合适;不支持直播;
FLV:flash支持,apple无法使用,智能机不支持;支持直播
这里用到两个播放器:jwplayer和SewisePlayer;
定义: 播放而不下载整个文件,只将部分内容存入内存,流式媒体的数据流随时传送随时播放,开始略带延迟;
分类:实时流式传输和顺序流式传输;顺序:先下载才能播放,例如爱奇艺;实时:根据网络实时并持续的传送;
传输协议:rtmp(adobe实时消息协议,用于web中),rtsp(实时流传输协议,用于摄像头),hls(m3u8的切片文件);
前端web开发中,rtmp和hls都可用jwplayer和sewisePlayer播放器播放,rtsp可用vlc播放,vlc的安装(http://www.videolan.org/vlc/download-windows.zh.html)web plugin浏览器的插件,勾选网页插件即可在浏览器中使用;
https://github.com/AxisCommunications/locomote-video-player
[^footnote].
直播视频
浏览器播放器
jwplayer的使用方法
SewisePlayer的使用方法
VLC的使用方法
flash对rtsp-tcp的支持研究
视频的转换
去年做了一个视频转换的项目,现在稍微做一个总结;视频转换的过程:用户上传视频 —> 存入django —> 触发转换 —> 用ffmpeg来做(拆分视频、转换、合并) —> 返回合并后的视频地址;
为了转换成浏览器可播,转换成两种格式:hls和mp4;(为了兼容)
HLS-apple技术主要用于PC和APPLE终端音视频服务。html5直接支持;包括m3u8文件+TS媒体文件+key加密串;支持直播
mp4:pc|apple|android都支持,文件头大,结构复杂,长视频不合适;不支持直播;
FLV:flash支持,apple无法使用,智能机不支持;支持直播
这里用到两个播放器:jwplayer和SewisePlayer;
直播视频
流媒体是一种边传边播的媒体,采用流式传输技术,多媒体的一种:定义: 播放而不下载整个文件,只将部分内容存入内存,流式媒体的数据流随时传送随时播放,开始略带延迟;
分类:实时流式传输和顺序流式传输;顺序:先下载才能播放,例如爱奇艺;实时:根据网络实时并持续的传送;
传输协议:rtmp(adobe实时消息协议,用于web中),rtsp(实时流传输协议,用于摄像头),hls(m3u8的切片文件);
前端web开发中,rtmp和hls都可用jwplayer和sewisePlayer播放器播放,rtsp可用vlc播放,vlc的安装(http://www.videolan.org/vlc/download-windows.zh.html)web plugin浏览器的插件,勾选网页插件即可在浏览器中使用;
浏览器播放器
jwplayer的使用方法
国外网站,是播放主流,社区丰富jwplayer("mainPlayer").setup({ playlist:[{ image: "../dist/img/stars.jpg", title: "SD Quality", type: "flv", startparam: "start", file:"http://100.69.169.248/h5/sea-modules/jwplayer/jwplayer/6.0.0/aaaa.flv" }], width: 640, height: 570 });
SewisePlayer的使用方法
国内网站,稳定度不高SewisePlayer.setup({ server: "vod", type: "flv", autostart: "true", videourl: "", starttime:0, title:"VodVideo", buffer:0, logo:"11", claritybutton:"disable", skin:"vodMobileTransparent", topbardisplay:"disable" }, "player");
VLC的使用方法
国内网站,稳定度不高<OBJECT classid="clsid:9BE31822-FDAD-461B-AD51-BE1D1C159921" id="vlc" codebase="http://download.videolan.org/pub/videolan/vlc/0.8.6c/win32/axvlc.cab" width="600" height="480" id="vlc" events="True"> <EMBED src="rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp" pluginspage="http://www.videolan.org" type="application/x-vlc-plugin" version="VideoLAN.VLCPlugin.2" width="600" height="480" text="Waiting for video" name="vlc" ></EMBED> </OBJECT> js: function getVLC(name){ if (window.document[name]){ return window.document[name]; } if (navigator.appName.indexOf("Microsoft Internet")==-1){ if (document.embeds && document.embeds[name]) { return document.embeds[name]; } }else{ return document.getElementById(name); } } function doGo(){ var vlc = getVLC("vlc"); var mrl='rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp'; var options = new Array(":aspect-ratio=4:3", ":rtsp-tcp"); var itemId = vlc.playlist.add(mrl, null, options); vlc.playlist.playItem(itemId); } 注意:":rtsp-tcp",网上大都写为"--rtsp-tcp",前者才可播放;
flash对rtsp-tcp的支持研究
关注度不高,且尚未实验成功:https://github.com/AxisCommunications/locomote-video-player
[^footnote].