文档章节

流媒体:ffmpeg生成HLS的m3u8与ts片段

IamOkay
 IamOkay
发布于 2017/01/19 22:30
字数 540
阅读 7148
收藏 39

ffmpeg将一个完整的视频切割成ts片段,并且生成m3u8文件需要通过m3u8-segmenter来实现,但是m3u8-segmenter的作者已经放弃维护该项目,并且声明该项目过期

I no longer have much time to work on this project and for the most part it is deprecated now that both ffmpeg and libav have direct support for segmenting and creating m3u files. Quite happy to point this elsewhere if someone else would like to take over the project.

我没有时间来支持这个项目了,因为这个项目已经大幅度落后支持ts切片和生成m3u8文件的ffmpeg和libav项目了,但是无论如何,如果某人喜欢的话也可以研究这个项目,我也会很高兴。

转换方式一

1.直接把媒体文件转为ts

ffmpeg -i cat.mp4 -c copy -bsf h264_mp4toannexb cat.ts

2.使用segment参数进行切片

ffmpeg -i cat.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 2 cat_output%03d.ts

 

转换方式二

1.ffmpeg切片命令,以H264和AAC的形式对视频进行输出

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls output.m3u8

2.ffmpeg转化成HLS时附带的指令 

-hls_time n: 设置每片的长度,默认值为2。单位为秒

-hls_list_size n:设置播放列表保存的最多条目,设置为0会保存有所片信息,默认值为5

-hls_wrap n:设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0.这个选项能够避免在磁盘上存储过多的片,而且能够限制写入磁盘的最多的片的数量

-hls_start_number n:设置播放列表中sequence number的值为number,默认值为0

3.对ffmpeg切片指令的使用

ffmpeg -i output.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 5 data/output.m3u8 

将输出的 M3u8 可直接使用vlc打开,发现拖动的时候会出现画面丢失的现象,待解决。

 

参考:

音视频处理

ffmpeg常用基本命令(转)

FFmpeg获取DirectShow设备数据(摄像头,录屏)

Nginx RTMP 模块 nginx-rtmp-module 指令详解

© 著作权归作者所有

共有 人打赏支持
IamOkay
粉丝 190
博文 463
码字总数 376795
作品 0
海淀
程序员
私信 提问
windows 下 hls 的点播和直播

Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件(可选)。 常用的流媒体协议主要有 HTTP 渐进下载和基于 RTSP/R...

mlianghua
2015/06/05
0
0
nginx上搭建HLS流媒体服务器

简介:HTTP Live Streaming(缩写是 HLS)是一个由苹果公司提出的基于HTTP的流媒体 网络传输协议。 是苹果公司QuickTime X和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基...

张旭0512
2014/05/15
0
0
利用Simple-RTMP-Server搭建RTMP和HLS直播服务(上)

SRS(Simple-RTMP-Server)定位是运营级的互联网直播服务器集群,追求更好的概念完整性和最简单实现的代码,在Github上人气颇高。本文是由王学投稿的SRS搭建直播的学习笔记,由LiveVideoStac...

livevideostack
2017/12/04
0
0
小玩流媒体播放——HLS流媒体点播系统

背景:前一段时间帮助一个朋友研究了下流媒体播放方面的知识,感觉挺好玩的。现在把浅薄的尝试和总结分享给大家。 一.HLS流媒体点播系统概述 HTTP Live Streaming最初是苹果公司针对其iPhon...

CasparLi
2015/05/28
0
1
nginx rtmp HLS直播

二、安装Nginx相关模块 1.环境准备 yum install –y pcre pcre-devel yum install –y zlib zlib-devel yum -y install openssl openssl-devel 2.下载nginx及rtmp模块 wget http://nginx.or......

ffredy
2015/08/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【58沈剑 架构师之路】选redis还是memcache,源码怎么说

memcache和redis是互联网分层架构中,最常用的KV缓存。不少同学在选型的时候会纠结,到底是选择memcache还是redis。 画外音:不鼓励粗暴的实践,例如“memcache提供的功能是redis提供的功能的...

张锦飞
9分钟前
0
0
不要依赖于线程调度器(72)

多个线程可运行时, 线程调度器决定哪些线程将会被运行、以及运行多长时间 任何操作系统在处理该问题时,会 尽力做到公正,但是策略却大相径庭 编写良好的程序不要依赖这种策略细节,否则程序...

Java搬砖工程师
13分钟前
0
0
路由器AP、路由、中继、桥接模式之间的区别

在TP-Link迷你无线路由器上一般有AP(接入点)模式、Router(无线路由)模式、Repeater(中继)模式、Bridge(桥接)模式、 Client(客户端)模式;已经属于模式很全的路由了,尽管仅仅只是一个小...

吴伟祥
13分钟前
0
0
初识kafka的zookeeper

最近项目中,使用redis进行消息的分发与订阅。这种模式就是一种多播的方式,但是随着消息的不断增加,消费端来不及处理所有的数据。在没有持久化的功能下,很多数据丢失了。当然,也可以使用...

孟飞阳
15分钟前
0
0
赋能时空云计算,阿里云数据库时空引擎Ganos上线

随着移动互联网、位置感知技术、对地观测技术的快速发展,时空信息已从传统GIS行业渗透到大众应用及各行各业。从静态POI(兴趣点)到APP位置信息,从导航电子地图到车辆行驶轨迹,从卫星影像...

阿里云官方博客
16分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部