标签:
记得有一次用手机上网看 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
标签:
原文地址:http://my.oschina.net/gaga/blog/492348