RTMP流媒体服务端应用开发系列 – Nginx-Rtmp-Win32实时转码

首先,为什么需要转码?
目前,Flash作为跨平台,跨浏览器的多媒体插件,在基于浏览器的视频直播发布应用上,仍然是不可替代的.
但它输出RTMP直播流时有个致命问题,只支持Speex或NellyMoser,不支持AAC音频编码.
即使是Flash Media Live Encoder这种应用程序仍然需要购买付费差价才能支持,不知道Adobe是处于什么考虑.
支持AAC有什么好处? 那太多了.
1.转出的HLS流可以直接被iOS/Android播放,可以使用HTML5技术在绝大多数浏览器内进行播放.
2.转出的HTTP-FLV流也可以依靠flv.js在绝大多数浏览器内进行播放,并且实时性非常好.
3.保存的录像文件可以被绝大多数播放器直接播放,speex/nellymoser很可能就无声了.

Nginx-Rtmp-Win32程序怎么实时转码?
如果是在Linux平台,Nginx-Rtmp可以直接使用exec来调用ffmpeg进行实时转码.
但是该功能原作者并没有在windows平台实现.而且,即使是在Linux平台,ffmpeg命令在处理直播型视频流时,会花很多时间进行分析.这验证影响了视频的实时性.
最新发布的v1.2版本Nginx-Rtmp-Win32,实现了内置的音频转码服务,经测试,转码流的视频与原视频几乎没有延迟.

目前支持任意格式的音频编码,转为LCAAC.
后期或将增加对HEAAC的支持,NVENC/NVDEC/Intel QSV硬件加速的视频转码,多分辨率输出等功能.

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: RTMP流媒体服务端应用开发系列 – Nginx-Rtmp-Win32实时转码

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据