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源码根目录。然后执行一下命令

  1. ./configure --add-module=/usr/build/nginx-rtmp-module --with-http_ssl_module

  2. make

  3. make install

此时,nginx默认被安装到/usr/local/nginx目录,把目录/usr/local/nginx/sbin/添加到环境变量。
用nginx命令即可启动服务器,用nginx -s stop关闭服务器

然后,配置nginx服务器

修改/usr/local/nginx/conf/下的nginx.conf文件为

  1. #user nobody;

  2. worker_processes 1;

  3. error_log logs/error.log debug;

  4. events {

  5. worker_connections 1024;

  6. }

  7. http {

  8. include mime.types;

  9. default_type application/octet-stream;

  10. sendfile on;

  11. keepalive_timeout 65;

  12. server {

  13. listen 8080;

  14. server_name localhost;

  15. # sample handlers

  16. #location /on_play {

  17. # if ($arg_pageUrl ~* localhost) {

  18. # return 201;

  19. # }

  20. # return 202;

  21. #}

  22. #location /on_publish {

  23. # return 201;

  24. #}

  25. #location /vod {

  26. # alias /var/myvideos;

  27. #}

  28. # rtmp stat

  29. location /stat {

  30. rtmp_stat all;

  31. rtmp_stat_stylesheet stat.xsl;

  32. }

  33. location /stat.xsl {

  34. # you can move stat.xsl to a different location

  35. root /usr/build/nginx-rtmp-module;

  36. }

  37. # rtmp control

  38. location /control {

  39. rtmp_control all;

  40. }

  41. error_page 500 502 503 504 /50x.html;

  42. location = /50x.html {

  43. root html;

  44. }

  45. }

  46. }

  47. rtmp {

  48. server {

  49. listen 1935;

  50. ping 30s;

  51. notify_method get;

  52. application myapp {

  53. live on;

  54. # sample play/publish handlers

  55. #on_play http://localhost:8080/on_play;

  56. #on_publish http://localhost:8080/on_publish;

  57. # sample recorder

  58. #recorder rec1 {

  59. # record all;

  60. # record_interval 30s;

  61. # record_path /tmp;

  62. # record_unique on;

  63. #}

  64. # sample HLS

  65. #hls on;

  66. #hls_path /tmp/hls;

  67. #hls_sync 100ms;

  68. }

  69. # Video on demand

  70. #application vod {

  71. # play /var/Videos;

  72. #}

  73. # Video on demand over HTTP

  74. #application vod_http {

  75. # play http://localhost:8080/vod/;

  76. #}

  77. }

  78. }

此时如果配置正确,打开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视频服务器相关推荐

  1. iOS音视频开发八:视频编码,H.264 和 H.265 都支持

    我们将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第八篇:iOS 视频编码 Demo. ...

  2. 直播软件搭建音视频开发中的视频采集

    直播软件搭建音视频开发中的视频采集 前言 在直播和短视频行业日益火热的发展形势下,音视频开发(采集.编解码.传输.播放.美颜)等技术也随之成为开发者们关注的重点,本系列文章就音视频开发过程中所运用到的 ...

  3. Ios短视频开发初始化短视频失败或延时太长的问题原因分析

    在人们都追求快节奏的现在,手机APP打开速度都会成为购买手机时要考虑的重要问题,联通网络公司断网半个小时能引起民愤,那么移情考虑到短视频平台上来说,在视频播放方面,初始化短视频的时间当然是越短越好. ...

  4. 网页测试本地服务器_音视频开发搭建一个直播服务器

    现在抖音.快手等直播实在是太火了,因此对音视频的开发非常感兴趣.查阅了相关资料,使用Nginx搭建一个简单的直播跟点播流媒体服务器,能够实时推流到服务器,同时在网页端播放直播的视频. 先上效果 使用O ...

  5. iOS音视频开发七:视频采集

    将通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第七篇:iOS 视频采集 Demo.这个 ...

  6. iOS音视频开发十三:视频渲染,用 Metal 渲染

    本系列文章通过拆解采集 → 编码 → 封装 → 解封装 → 解码 → 渲染流程并实现 Demo 来向大家介绍如何在 iOS/Android 平台上手音视频开发. 这里是第十三篇:iOS 视频渲染 De ...

  7. 短视频开发,录制视频添加背景音乐功能实现

    短视频开发,会在视频录制时提供相关的背景音乐选择,看似简单的选取背景音乐,但对开发人员来说却不是那么简单,如何实现短视频开发录制视频添加背景音乐功能呢? 1.短视频开发在录制界面点击音乐,绘制UI 添 ...

  8. 短视频开发之短视频广告功能,教你玩转短视频营销

    2018年互联网营销的阵地逐渐从网络视频直播平台转移到了短视频平台,因此很多企业纷纷将广告投入向短视频营销倾斜.短视频具备内容短小精悍.创意多元化.充分利用碎片时间的特点,与传统的视频广告相比,短视频 ...

  9. Android视频开发进阶-关于视频的那些术语,android软件开发计算器

    原文出处:jianshu 正文 说到安卓的视频开发,大多数朋友们都是用着开源的播放器,或者安卓自带的native mediaplayer,拿来主义居多,我曾经也是...最近这半年因为开始着手重构公司的 ...

  10. 短视频开发,短视频功能如何实现

    短视频开发在当今社会发展中逐渐成为稳赚不赔的项目.不仅定位准确,而且很好的将大众的需求与碎片化时间合理利用,短视频行业才得以快速发展.在短视频开发过程中,SDK是必不可少的"工具" ...

最新文章

  1. 坦白讲!90%的数据分析师都不合格!!
  2. C# Message 消息处理
  3. Linux 中断之中断处理浅析
  4. 和泰c语言函数库,合泰杯 | 合泰单片机入门 编程详解(二)
  5. JQuery-学习笔记01【基础——JQuery基础】
  6. kafka整理笔记笔记
  7. 用SAP WebIDE将CRUD Master-Detail应用打包成Hybrid App
  8. javascript中构造函数的说明
  9. Java面向对象编程篇4——内部类
  10. 菜单固定随滚动条滑动
  11. html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
  12. 用计算机谈过火,央视电视文化中心过火网架的复建关键技术研究
  13. NET Compact Framework 与 .NET Framework 之间的差异
  14. linux--用户和组管理
  15. html5 sha1,JavaScript 实现的base64加密、md5加密、sha1加密及AES加密
  16. 解决Mac App Store下载软件一直转圈无法完成的问题,黑白苹果均有效
  17. 说一说科大讯飞Windows版本唤醒功能10102功能的问题
  18. 2015最好用的PHP开源建站系统
  19. Customers带出功能JS
  20. 从南极到你家,易开得,一支“中国芯”的奇幻漂流

热门文章

  1. jenkins构建后脚本不执行_接口管理工具ApiPost-预(后)执行脚本常用方法集合
  2. ue java_Ue java 配置
  3. java输出到文本_java怎么把运行结果写到一个自动生成的文本里?。能给个例子么,详细点...
  4. mysql not exists优化_MySQL优化--NOT EXISTS和LEFT JOIN方式差异
  5. brew安装mysql 卸载_Mac卸载mysql并安装mysql升级到8.0.13版本
  6. Spring容器的底层实现
  7. 微信小程序|开发实战篇之十-一些细节处理
  8. Hadoop 2.x简介
  9. 贪心 HDOJ 5090 Game with Pearls
  10. ORACLE使用数据泵导入导出部分表