首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HLS varianplaylistcreator for Windows

HLS varianplaylistcreator for Windows
EN

Stack Overflow用户
提问于 2012-06-21 03:04:42
回答 2查看 2.9K关注 0票数 1

我最初的任务是为Windows找到一个分段器,它可以在不更改编解码器的情况下拆分h264\aac视频文件,并使其可以通过HLS播放。

对我来说,最好的方式就是像这样使用ffmpeg:

代码语言:javascript
复制
ffmpeg -i encoded.mp4 -c copy -map 0 -vbsf h264_mp4toannexb -flags -global_header -f segment -segment_time 10 -segment_format mpegts stream%d.ts

现在,这或多或少正确地拆分了文件,尽管mediastreamvalidator抛出了几个警告,但我仍然能够播放视频。

但是,这里有一个棘手的部分: ffmpeg不能为您创建.m3u8文件。这不是一个问题,除非你需要创建一个不同的播放列表文件,我确实需要。因此,现在我需要找到或编写一个模仿varianplaylistcreator的应用程序

因此,假设您为每个不同的带宽编码了相同的视频: 64、150、300、500、800、1200和2400。现在,在对每个视频进行分段后,您可能希望将这些分段放入单独的文件夹中,包括每个副本的播放列表文件。

现在我们可以创建一个不同的播放列表文件,其中我们列出了所有呈现,以及关于哪个带宽服务器应该自动切换为不同呈现提供服务的指令。

通常不同的播放列表如下所示:

代码语言:javascript
复制
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=512376
500/500k_512x384_x264_372_quicktime_128.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=68795
64/64k_256x192_x264_32_quicktime_32.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=155580
150/150k_256x192_x264_118_quicktime_32.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=308895
300/300k_512x384_x264_172_quicktime_128.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=811310
800/800k_512x384_x264_672_quicktime_128.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1210182
1200/1200k_1024x768_x264_1072_quicktime_128.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2408106
2400/2400k_1024x768_x264_2272_quicktime_128.m3u8

请注意带宽属性值。我怀疑这些值是由varinatplaylistcreator计算的。

我不知道它是怎么做到的。我猜不知何故,每次渲染都需要视频(片段)的平均比特率,并基于此来实现。

所以我的问题是:这些是如何计算出来的。或者,也许有人已经创建了一个可以在Windows上运行并创建各种播放列表的工具。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-21 15:37:51

FFmpeg可以报告ts流的比特率。使用ffprobe工具,您将得到如下输出:

代码语言:javascript
复制
Input #0, mpegts, from 'foo.ts':
  Duration: 00:04:50.87, start: 2.000011, bitrate: 10381 kb/s
  Program 1
    Stream #0.0[0x810]: Video: h264 (High), yuv420p, 1280x720 [PAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc

比特率是以千比特每秒为单位的,所以乘以1024,你就会得到你需要的带宽标签的值。

票数 2
EN

Stack Overflow用户

发布于 2018-08-10 18:32:22

您可以使用Bento4。他们在文档中指定,我们可以使用这个,而不是苹果的variantplaylistcreator

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11126432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档