音视频开发(6)---nginx视频服务器
nginx视频服务器
ningx服务器的 nginx-rtmp-module模块很强大,可以支持rtmp, HLS以及MPEG DASH。今天在我的centos 7上用nginx搭建了一个简单的视频服务器
首先,是下载以及编译nginx.
nginx官网(https://nginx.org/en/download.html )可以下载nginx的各种版本,但貌似里面并没有rtmp模块
所以,需要自己下载源代码编译。
1.下载nginx
hg clone http://hg.nginx.org/nginx
2.下载 nginx-rtmp-module
git clone https://github.com/arut/nginx-rtmp-module.git
3. 安装编译依赖的库文件
yum install gc gcc gcc-c++ pcre-devel zlib-devel make wget openssl-devel libxml2-devel libxslt-devel gd-devel perl-ExtUtils-Embed GeoIP-devel gperftools gperftools-devel libatomic_ops-devel perl-ExtUtils-Embed
4. cd到nginx源码目录,将auto目录下的configure文件copy到nignx源码根目录。然后执行一下命令
./configure --add-module=/usr/build/nginx-rtmp-module --with-http_ssl_module
make
make install
此时,nginx默认被安装到/usr/local/nginx目录,把目录/usr/local/nginx/sbin/添加到环境变量。
用nginx命令即可启动服务器,用nginx -s stop关闭服务器
然后,配置nginx服务器
修改/usr/local/nginx/conf/下的nginx.conf文件为
#user nobody;
worker_processes 1;
error_log logs/error.log debug;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8080;
server_name localhost;
# sample handlers
#location /on_play {
# if ($arg_pageUrl ~* localhost) {
# return 201;
# }
# return 202;
#}
#location /on_publish {
# return 201;
#}
#location /vod {
# alias /var/myvideos;
#}
# rtmp stat
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
# you can move stat.xsl to a different location
root /usr/build/nginx-rtmp-module;
}
# rtmp control
location /control {
rtmp_control all;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
rtmp {
server {
listen 1935;
ping 30s;
notify_method get;
application myapp {
live on;
# sample play/publish handlers
#on_play http://localhost:8080/on_play;
#on_publish http://localhost:8080/on_publish;
# sample recorder
#recorder rec1 {
# record all;
# record_interval 30s;
# record_path /tmp;
# record_unique on;
#}
# sample HLS
#hls on;
#hls_path /tmp/hls;
#hls_sync 100ms;
}
# Video on demand
#application vod {
# play /var/Videos;
#}
# Video on demand over HTTP
#application vod_http {
# play http://localhost:8080/vod/;
#}
}
}
此时如果配置正确,打开http://localhost:8080/stat可以看到rtmp的统计信息
最后,用ffmpeg串流到刚刚配置的rtmp://localhost/myapp/mystream
需要注意的是,目前服务器只支持有限的音视频编码格式,如H264, AAC, MP3等。
ffmpeg -re -i test.mp4 -c:v libx264 -c:a libfaac -ar 44100 -ac 1 -f flv rtmp://localhost/myapp/mystream
此时,浏览器打开http://localhost:8080/stat能看到信息的变化。
也可以用播放器进行播放,例如
ffplay rtmp://localhost/myapp/mystream
音视频开发(6)---nginx视频服务器相关推荐
- iOS音视频开发八:视频编码,H.264 和 H.265 都支持
我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第八篇:iOS 视频编码 Demo. ...
- 直播软件搭建音视频开发中的视频采集
直播软件搭建音视频开发中的视频采集 前言 在直播和短视频行业日益火热的发展形势下,音视频开发(采集.编解码.传输.播放.美颜)等技术也随之成为开发者们关注的重点,本系列文章就音视频开发过程中所运用到的 ...
- Ios短视频开发初始化短视频失败或延时太长的问题原因分析
在人们都追求快节奏的现在,手机APP打开速度都会成为购买手机时要考虑的重要问题,联通网络公司断网半个小时能引起民愤,那么移情考虑到短视频平台上来说,在视频播放方面,初始化短视频的时间当然是越短越好. ...
- 网页测试本地服务器_音视频开发搭建一个直播服务器
现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...
- iOS音视频开发七:视频采集
将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第七篇:iOS 视频采集 Demo.这个 ...
- iOS音视频开发十三:视频渲染,用 Metal 渲染
本系列文章通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第十三篇:iOS 视频渲染 De ...
- 短视频开发,录制视频添加背景音乐功能实现
短视频开发,会在视频录制时提供相关的背景音乐选择,看似简单的选取背景音乐,但对开发人员来说却不是那么简单,如何实现短视频开发录制视频添加背景音乐功能呢? 1.短视频开发在录制界面点击音乐,绘制UI 添 ...
- 短视频开发之短视频广告功能,教你玩转短视频营销
2018年互联网营销的阵地逐渐从网络视频直播平台转移到了短视频平台,因此很多企业纷纷将广告投入向短视频营销倾斜.短视频具备内容短小精悍.创意多元化.充分利用碎片时间的特点,与传统的视频广告相比,短视频 ...
- Android视频开发进阶-关于视频的那些术语,android软件开发计算器
原文出处:jianshu 正文 说到安卓的视频开发,大多数朋友们都是用着开源的播放器,或者安卓自带的native mediaplayer,拿来主义居多,我曾经也是...最近这半年因为开始着手重构公司的 ...
- 短视频开发,短视频功能如何实现
短视频开发在当今社会发展中逐渐成为稳赚不赔的项目.不仅定位准确,而且很好的将大众的需求与碎片化时间合理利用,短视频行业才得以快速发展.在短视频开发过程中,SDK是必不可少的"工具" ...
最新文章
- 坦白讲!90%的数据分析师都不合格!!
- C# Message 消息处理
- Linux 中断之中断处理浅析
- 和泰c语言函数库,合泰杯 | 合泰单片机入门 编程详解(二)
- JQuery-学习笔记01【基础——JQuery基础】
- kafka整理笔记笔记
- 用SAP WebIDE将CRUD Master-Detail应用打包成Hybrid App
- javascript中构造函数的说明
- Java面向对象编程篇4——内部类
- 菜单固定随滚动条滑动
- html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
- 用计算机谈过火,央视电视文化中心过火网架的复建关键技术研究
- NET Compact Framework 与 .NET Framework 之间的差异
- linux--用户和组管理
- html5 sha1,JavaScript 实现的base64加密、md5加密、sha1加密及AES加密
- 解决Mac App Store下载软件一直转圈无法完成的问题,黑白苹果均有效
- 说一说科大讯飞Windows版本唤醒功能10102功能的问题
- 2015最好用的PHP开源建站系统
- Customers带出功能JS
- 从南极到你家,易开得,一支“中国芯”的奇幻漂流
热门文章
- jenkins构建后脚本不执行_接口管理工具ApiPost-预(后)执行脚本常用方法集合
- ue java_Ue java 配置
- java输出到文本_java怎么把运行结果写到一个自动生成的文本里?。能给个例子么,详细点...
- mysql not exists优化_MySQL优化--NOT EXISTS和LEFT JOIN方式差异
- brew安装mysql 卸载_Mac卸载mysql并安装mysql升级到8.0.13版本
- Spring容器的底层实现
- 微信小程序|开发实战篇之十-一些细节处理
- Hadoop 2.x简介
- 贪心 HDOJ 5090 Game with Pearls
- ORACLE使用数据泵导入导出部分表