快捷搜索:  汽车  科技

如何将m3u转换成直播源(HLSm3u8直播文件在线直播实现)

如何将m3u转换成直播源(HLSm3u8直播文件在线直播实现)ffmpeg用来负责把直播流(RTSP)切片成*.ts文件1、ffmpeg(下载地址:http://ffmpeg.org/download.html)新型点播服务器系统,独创了内存缓存数据实时切片技术,颠覆了这种传统实现方法,从根本上解决了大量切片的碎片问题,使得单台服务器的切片与打包能力不再是瓶颈。其基本原理如下:不将TS切片文件存到磁盘,而是存在内存当中,这种技术使得服务器的磁盘上面不再会有“数以吨计”的文件碎片,极大减少了磁盘的I/O次数,延长了服务器磁盘的使用寿命,极大提高了服务器运行的稳定性。同时,由于使用这种技术,使得终端请求数据时直接从服务器的内存中获取,极大提高了对终端数据请求的反应速度,优化了视频观看体验。使用下面两个工具

如何将m3u转换成直播源(HLSm3u8直播文件在线直播实现)(1)

如何将m3u转换成直播源(HLSm3u8直播文件在线直播实现)(2)

HLS (HTTP Live Streaming),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

HLS (HTTP Live Streaming)

常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/RTP 的实时流媒体协议,这二种基本是完全不同的东西,目前比较方便又好用的是用 HTTP 渐进下载方法。在这个中 apple 公司的 HTTP Live Streaming 是这个方面的代表。它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流.现在见到在桌面也有很多应用了,HTML5 是直接支持这个。

但是HLS协议的小切片方式会生成大量的文件,存储或处理这些文件会造成大量资源浪费。如果要实现数天的时移,索引量将会是个巨额数字,并明显影响请求速度。因此,HLS协议对存储I/O要求相当苛刻。对此,也有公司提出了非常好的解决方案。

新型点播服务器系统,独创了内存缓存数据实时切片技术,颠覆了这种传统实现方法,从根本上解决了大量切片的碎片问题,使得单台服务器的切片与打包能力不再是瓶颈。其基本原理如下:

不将TS切片文件存到磁盘,而是存在内存当中,这种技术使得服务器的磁盘上面不再会有“数以吨计”的文件碎片,极大减少了磁盘的I/O次数,延长了服务器磁盘的使用寿命,极大提高了服务器运行的稳定性。同时,由于使用这种技术,使得终端请求数据时直接从服务器的内存中获取,极大提高了对终端数据请求的反应速度,优化了视频观看体验。


使用下面两个工具

1、ffmpeg(下载地址:http://ffmpeg.org/download.html)

ffmpeg用来负责把直播流(RTSP)切片成*.ts文件

主要参数:

-i 设定输入流

-f 设定输出格式

-ss 开始时间

视频参数:

-b 设定视频流量,默认为200Kbit/s

-r 设定帧速率,默认为25

-s 设定画面的宽与高

-aspect 设定画面的比例

-vn 不处理视频

-vcodec 设定视频编解码器,未设定时则使用与输入流相同的编解码器

-keyint_min 60 最小关键帧间隔

-g 60 GOP 长度

-sc_threshold 0 根据视频的运动场景,自动为你添加额外的I 帧,所以会导致你编出来的视频关键帧间隔不是你设置的长度,

这是只要将它设为0

音频参数:

-ar 设定采样率

-ac 设定声音的Channel 数

-acodec 设定声音编解码器,未设定时则使用与输入流相同的编解码器

-an 不处理音频

----------------------------------------------------分隔线----------------------------------------------------

主要参数

-i 设定输入档名。

-f 设定输出格式。

-y 若输出档案已存在时则覆盖档案。

-fs 超过指定的档案大小时则结束转换。

-ss 从指定时间开始转换。

-title 设定标题。

-timestamp 设定时间戳。

-vsync 增减Frame 使影音同步。

影像参数

-b 设定影像流量,默认为200Kbit/秒。( 单位请参照下方注意事项)

-r 设定FrameRate 值,默认为25。

-s 设定画面的宽与高。

-aspect 设定画面的比例。

-vn 不处理影像,于仅针对声音做处理时使用。

-vcodec 设定影像影像编解码器,未设定时则使用与输入档案相同之编解码器。

声音参数

-ab 设定每Channel(最近的SVN 版为所有Channel 的总合)的流量。( 单位请参照下方注意事项)

-ar 设定采样率。

-ac 设定声音的Channel 数。

-acodec 设定声音编解码器,未设定时与影像相同,使用与输入档案相同之编解码器。

-an 不处理声音,于仅针对影像做处理时使用。

-vol 设定音量大小,256 为标准音量。(要设定成两倍音量时则输入512,依此类推。)

注意事项

以-b 及ab 参数设定流量时,根据使用的ffmpeg 版本,须注意单位会有kbits/sec 与bits/sec 的不同。(可用ffmpeg -h 显

示说明来确认单位。)

例如,单位为bits/sec 的情况时,欲指定流量64kbps 时需输入‘ -ab 64k ’;单位为kbits/sec 的情况时则需输入‘ -ab 64 ’。

以-acodec 及-vcodec 所指定的编解码器名称,会根据使用的ffmpeg 版本而有所不同。例如使用AAC 编解码器时,会有输入aac

与libfaac 的情况。此外,编解码器有分为仅供解码时使用与仅供编码时使用,因此一定要利用ffmpeg -formats 确认输入的

编解码器是否能运作。

2、WEB服务器(IIS,Apache,Nginx)分发切片

web服务器配置在这里就不多说了。


demo:http://live.16it.wang


如有需要源码的可以联系我:519468341

猜您喜欢: