Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 命令行';hls#U段#U尺寸#x27;创建有段故障的TS文件_Video_Ffmpeg_Http Live Streaming_M3u8 - Fatal编程技术网

Video 命令行';hls#U段#U尺寸#x27;创建有段故障的TS文件

Video 命令行';hls#U段#U尺寸#x27;创建有段故障的TS文件,video,ffmpeg,http-live-streaming,m3u8,Video,Ffmpeg,Http Live Streaming,M3u8,我正在转换一个简单的mp4视频到hls,但我需要在大约一个特定的大小段 我研究发现: -hls_segment_size 17000000 17000000字节(约17MB) 这将创建具有近似大小的TS文件(不必是精确大小) 在m3u8中,文件被创建为“#EXT-X-BYTERANGE”,这是我想要的方式 #EXTM3U #EXT-X-VERSION:4 #EXT-X-TARGETDURATION:10 #EXT-X-MEDIA-SEQUENCE:0 #EXTINF:8.400000, #EX

我正在转换一个简单的mp4视频到hls,但我需要在大约一个特定的大小段

我研究发现:

-hls_segment_size 17000000
17000000字节(约17MB)

这将创建具有近似大小的TS文件(不必是精确大小)

在m3u8中,文件被创建为“#EXT-X-BYTERANGE”,这是我想要的方式

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:8.400000,
#EXT-X-BYTERANGE:1662108@0
SampleVideo_1280x720_30mb0.ts
#EXTINF:4.560000,
#EXT-X-BYTERANGE:383896@0
SampleVideo_1280x720_30mb1.ts
#EXTINF:3.120000,
#EXT-X-BYTERANGE:408712@383896
SampleVideo_1280x720_30mb1.ts
#EXTINF:5.640000,
#EXT-X-BYTERANGE:1161840@0
SampleVideo_1280x720_30mb2.ts
#EXTINF:1.880000,
#EXT-X-BYTERANGE:230864@0
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.160000,
#EXT-X-BYTERANGE:330880@230864
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.080000,
#EXT-X-BYTERANGE:489928@0
SampleVideo_1280x720_30mb4.ts
#EXTINF:4.400000,
#EXT-X-BYTERANGE:1564348@489928
SampleVideo_1280x720_30mb4.ts
...
看起来不错,但有点小问题。我在浏览器中的播放器上进行测试,当秒数从一个片段转到另一个片段时,视频的声音和视频锁定。有些东西很烦人,在视频中不自然

不使用“-hls_段_大小”将具有功能性TS文件,并且在m3u8文件中没有BYTERANGE

但是,TS文件的大小将取决于定义的秒数

我目前正在尝试获取一个ts文件,该文件的大小设置接近15MB到20MB之间,并且在m3u8文件中包含BYTERANGE

有人有什么想法吗

以下是我试图描述的问题:


恰好在视频的第二个7段中发生了“锁定”,当从一个片段转到另一个片段时会发生这种情况

只需将您的ffmpeg版本更新为>4即可
这个命令的旧版本有缺陷。

这对我来说似乎很困难,没有人可以帮助…检查您的服务器是否正确配置为处理HTTP范围请求。使用
hls.js
的示例显示了
.ts
文件的状态为
200
而不是
206
的响应,即使存在
Accept Ranges:bytes
头。根据
内容长度
,您似乎在响应中获得了整个片段,而不是所需的范围。您可以添加一些链接或其他信息来澄清吗?
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:8.400000,
#EXT-X-BYTERANGE:1662108@0
SampleVideo_1280x720_30mb0.ts
#EXTINF:4.560000,
#EXT-X-BYTERANGE:383896@0
SampleVideo_1280x720_30mb1.ts
#EXTINF:3.120000,
#EXT-X-BYTERANGE:408712@383896
SampleVideo_1280x720_30mb1.ts
#EXTINF:5.640000,
#EXT-X-BYTERANGE:1161840@0
SampleVideo_1280x720_30mb2.ts
#EXTINF:1.880000,
#EXT-X-BYTERANGE:230864@0
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.160000,
#EXT-X-BYTERANGE:330880@230864
SampleVideo_1280x720_30mb3.ts
#EXTINF:2.080000,
#EXT-X-BYTERANGE:489928@0
SampleVideo_1280x720_30mb4.ts
#EXTINF:4.400000,
#EXT-X-BYTERANGE:1564348@489928
SampleVideo_1280x720_30mb4.ts
...