文档章节

HLS 与 FFMPEG

汉克斯
 汉克斯
发布于 2015/08/14 14:32
字数 506
阅读 2452
收藏 3

       记得有一次用手机上网看 MP4 ,才知道手机是看不到一般格式的视频的,参考了一些有关流媒体的文章后,渐渐地就缠上了 Ffmpeg ...

       今年特意下载个短视频来测试新版 ffmpeg ,制作流媒体 HLS 虽然成功,但 ffmpeg 却发出错误讯息,说我的流复用器选项过时,个别选项被忽略,无奈,只得到 ffmpeg 网页 看看,原来 ffmpeg 已经不需要【TS流分割器】也能独自将媒体分段(一个简单范例):ffmpeg -i in.nut out.m3u8

       这范例没有设定分段长度: hls_time seconds 默认值是2秒。没有设定播放列表的最大列数: hls_list_size size 默认为5列......其它新旧选项的用法有待测试。

ffmpeg 版本: N-69612-g2fd9ce9,下面是其中一个测试例子:

ffmpeg -i in.nut -codec copy -bsf:v h264_mp4toannexb -ss 00:01:00 -to 00:04:10 -hls_time 9 -hls_list_size 0 -hls_segment_filename 'lj%03d.ts' out.m3u8

-bsf:v h264_mp4toannexb: 视频H.264流过滤, 犹其那类非标准H.264码流格式的视频更需要。

-ss 00:01:00 -to 00:04:10: 截取一分钟长度后的视频并开始分段到四分十秒止。

-hls_time 9: 设定段长度9秒。

-hls_list_size 0: 此项设置为0将包含所有的段。

-hls_segment_filename 'lj%03d.ts': 设置段文件名以lj开始。

out.m3u8 播放列表(自动生成):

如果将 -hls_segment_filename 'lj%03d.ts' 换作 -hls_flags single_file 即所有段文件将存储在一个单一的MPEG-TS文件(out.ts)中。


#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:16
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:14.199633,
lj000.ts
#EXTINF:5.040000,
lj001.ts
#EXTINF:8.480000,
lj002.ts
#EXTINF:9.440000,
lj003.ts
#EXTINF:10.000000,
lj004.ts
#EXTINF:10.000000,
lj005.ts
#EXTINF:8.120000,
lj006.ts
#EXTINF:10.000000,
lj007.ts
#EXTINF:6.920000,
lj008.ts
#EXTINF:14.320000,
lj009.ts
#EXTINF:4.760000,
lj010.ts
#EXTINF:9.960000,
lj011.ts
#EXTINF:10.040000,
lj012.ts
#EXTINF:6.640000,
lj013.ts
#EXTINF:7.440000,
lj014.ts
#EXTINF:9.960000,
lj015.ts
#EXTINF:8.000000,
lj016.ts
#EXTINF:15.480000,
lj017.ts
#EXTINF:6.920000,
lj018.ts
#EXTINF:6.040000,
lj019.ts
#EXTINF:8.200000,
lj020.ts
#EXT-X-ENDLIST


自适流播放列表

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1677946,RESOLUTION=1280x720
lj1280x720.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=707099,RESOLUTION=640x360
lj640x360.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=357103,RESOLUTION=320x180
lj320x180.m3u8


© 著作权归作者所有

共有 人打赏支持
汉克斯
粉丝 15
博文 13
码字总数 19282
作品 0
CTO(技术副总裁)
加载中

评论(1)

t
telenewbie
怎么使用ffmpeg 解析hls 呢?
使用代码的方式.
windows 下 hls 的点播和直播

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

mlianghua
2015/06/05
0
0
使用Nginx+FFMPEG搭建HLS直播转码服务器

目的:使Nginx支持Rtmp协议推流,并支持hls分发功能及FFMPEG转码多码率功能。 一、准备工作 模块:nginx-rtmp-module-master(支持rtmp协议) 下载地址: http://nginx.org https://github.com/a...

ffredy
2015/08/15
0
1
Docker 构建 Nginx + ffmpeg + OBS 直播服务器 - docker nginx rtmp

docker nginx rtmp 一个Dockerfile从源代码安装NGINX,nginx-rtmp-module和FFmpeg HLS实时流媒体的默认设置。 建立在Alpine Linux上。 Nginx 1.15.3 (从源代码编译) nginx-rtmp-module 1.2.1...

匿名
08/30
0
0
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
ffmpeg: hls 转流 rtmp

最近遇到一个需求,需要将hls协议的直播流转换成rtmp协议的直播流;在网上找了很长时间,没有找到相应的技术文章,最后leader给了一个终极命令搞定: 如果提示缺少 libx264 ,可能是你安装f...

那只是一股逆流
04/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day99-20180926-英语流利阅读-待学习

换汤不换药的美容大忽悠:从抗衰老到肌肤焕发新生 Lala 2018-09-26 1.今日导读 说到护肤品,一个个大牌广告就浮现在我们眼前:皮肤吹弹可破的女明星手捧功能各异的瓶瓶罐罐,暗示着消费者买买...

飞鱼说编程
37分钟前
3
0
FFmpeg Maintainer赵军:FFmpeg关键组件与硬件加速

大家好!我是赵军,现就职于英特尔的DCG从事基于FFmpeg的硬件优化工作,两年多前加入FFmpeg社区,2018年4月成为FFmpeg的其中的一个FFmpeg Maintainer,主要负责FFmpeg的硬件优化工作。 概览:...

yizhichao
今天
1
0
ehlib 修改 使行号字体颜色 与标题字体颜色 一致

对ehlib 显示效果不够满意,而做的调整 修改这个过程:procedure TCustomDBGridEh.DrawIndicatorCell(ACol, ARow: Longint; AreaCol, AreaRow: Longint; ARect: TRect; AState: TGri......

vga
今天
1
0
Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
59
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部