网易视频云分享:如何搭建MP4媒体服务器
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅、低时延、高并发的视频直播、录制、存储、转码及点播等音视频的PAAS服务,在线教育、远程医疗、娱乐秀场、在线金融等各行业及企业用户只需经过简单的开发即可打造在线音视频平台。现在,网易视频云的技术专家给大家分享一则技术文:如何搭建MP4媒体服务器。
随着媒体技术的发展,以及硬件设备的普及和移动设备的触角延伸之社会各个角落,人们可以随时随地产生信息。其中,多媒体信息成为了人们信息分享的重要方式。如何让这些的信息能被千差万别的设备观看,视频编码技术成为一种切实可行的方案。网易视频云在这里分享视频编码技术——如何搭建MP4媒体服务器。
环境
操作系统:linux 2.6.32-5-amd64。Linux 版本即可。
服务器:nginx 1.3.3。nginx的版本可以更高。
客户端:jwplayer。或者任何播放器即可。
搭建步骤
安装nginx with nginx_mod_h264_streaming
1、 下载nginx 和nginx_mod_h264_streaming
wget http://nginx.org/download/nginx-1.3.3.tar.gz
git clone https://github.com/vivus-ignis/nginx_mod_h264_streaming.git
2、 解压
tar –xzvf nginx-1.3.3.tar.gz
3、 安装
cd nginx-1.3.3
#nginx_mod_h264_streaming为第三方模块。
./configure --prefix=/home/user/nginx_flv --add_module=nginx_mod_h264_streaming_2.2.7
4、 配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
log_format main 'remoteaddr?remote_user [timelocal]"request" '
'statusbody_bytes_sent "$http_referer" '
'"httpuseragent""http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8088;
server_name localhost;
#charset koi8-r;
access_log logs/host.access.log main;
location / {
root /home/fs/video;
index index.html index.htm;
autoindex on;
location ~ \.mp4{
mp4;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
}
说明:绿色部分为配置MP4的部分。/home/fs/video目录为资源存放路径,包括jwplayer以及测试用的视频文件都存放于该目录。
5、 配置jwplayer服务器。
下载开源的jwplayer,比如mediaplayer-5.10。解压之后将player.swf以及jwplayer.js置于/home/fs/video。并将测试视频 zyd.flv 也置于/home/fs/video。
6、 测试
在浏览器中输入 http://hostip:8080/player.swf?type=http&file=zyd.mp4
可以随意拖动进度条,可以看到视频正常播放。
其他
1、 Mp4文件要想用swf播放器正常播放,必须对mp4文件的moov头信息前移,否则,会出现无法识别mp4文件的问题。
2、 如果视频是使用ffmpeg处理出来的,必须将moov头部前移到视频的头部。因为ffmpeg编码完视频后是将视频的moov信息写入视频的末尾。如果moov信息在视频的末尾带来的后果是,Flash player需要加载所有视频才能播放。
3、 如果mp4文件不含moov信息头,qtfaststart在做信息头前移时,会将cpu使用率撑到99%。因此必须解决该问题。
4、 nginx_mod_264_streaming是CCL的软件。可以用在非商业环境下。如果要在商业环境下使用需要购买许可。
5、 在flash player中播放mp4文件,视频的格式必须是h264编码。否则,flash player无法识别。音频必须为aac编码,否则,将出现只有只见其形不闻其声的情况。
另有两篇姊妹篇:如何搭建视频转码集群以及如何搭建FLV媒体服务器,可在网易视频云官方微博微信上查看,同时也欢迎大家进入网易视频云官网与技术人员进行交流。
网易视频云分享:如何搭建MP4媒体服务器相关推荐
- 网易视频云分享:流媒体技术介绍(上篇)
网易视频云分享:流媒体技术介绍(上篇) 网易视频云2016-04-14 11:49:49 创业 媒体 技术 阅读(949)评论(0) 声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代 ...
- 网易视频云分享:如何搭建视频转码集群
随着媒体技术的发展,以及硬件设备的普及和移动设备的触角延伸之社会各个角落,人们可以随时随地产生信息.而这些海量信息中,有不少多媒体信息.多媒体信息成为了人们信息分享的重要方式.毫不夸张地说,现在是一个 ...
- 网易视频云分享:最佳日志实践
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...
- hbase实战技术分享案例【网易视频云技术分享】
网易视频云:HBase最佳实践-列族设计优化 http://jingyan.baidu.com/article/642c9d3414e5c8644a46f7f5.html 网易视频云:网易HBase基 ...
- 网易视频云:用Nginx搭建flv,mp4,hls流媒体服务
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...
- linux内核视频 网易,网易视频云技术分享:UML调试Linux内核
原标题:网易视频云技术分享:UML调试Linux内核 网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点 ...
- mysql io队列_网易视频云经验分享MYSQL 5.5 的IO控制
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PASS服务.在线教育.远程医疗.娱乐秀场 ...
- 网易视频云技术分享:记一次.gitignore的操作细节
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...
- 网易视频云技术分享:linux软raid的bitmap分析
网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点播等音视频的PAAS服务,在线教育.远程医疗.娱乐秀场.在线 ...
最新文章
- adb 输入很长的内容 (input text) 在模拟机输入框里面快速输入内容
- 美国AI博士一针见血:Python这样学最容易成为高手!
- Windows 10 搭建Python开发环境(PyCharm )
- linux将mysql的错误连接数_Mysql学习笔记(十二) 并发参数调节
- Struts+Spring+Hibernate整合入门详解
- javascript DOM innerHTML createElement createTextNode
- 01 决策树 - 数学理论概述 - 熵
- ModuleNotFoundError: No module named 'win32api'
- 互联网1分钟 |1019
- RS232与RS485的功能与区别
- 在c语言中引用数组元素时,其数组下标的数据类型允许是什么
- php如何禁用浏览器的缓存,php如何禁止浏览器使用缓存页面
- 中科大开源镜像使用帮助列表
- 【Flink】Zookeeper connection loss leads to Flink job restart
- redis指定配置文件启动_Redis【简介amp;安装篇】
- php随机生成卡密,PHP随机生成不反复的8位卡号(数字)和卡密(字符串)_后端开发...
- RepairImages\superboot-6410.bin
- 基于FPGA的帧差法仿真实现
- mysql列名重复_ORA-00957:重复的列名_MySQL
- 看过这篇文章,再也不要说你是凭实力单身了