Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.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
Http 为什么创建的段的目标持续时间不是我指定的持续时间_Http_Ffmpeg_Streaming - Fatal编程技术网

Http 为什么创建的段的目标持续时间不是我指定的持续时间

Http 为什么创建的段的目标持续时间不是我指定的持续时间,http,ffmpeg,streaming,Http,Ffmpeg,Streaming,我正在使用以下命令 ffmpeg -i Apple.ts -map 0:0 -map 0:1 -c copy -f segment -segment_time 10 -segment_list test.m3u8 -segment_format ts 'fileSequence%d.ts' 文件确实被分割,但值不精确。请参见下面生成的.m3u8中,目标持续时间为12,但我指定了10 #EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-

我正在使用以下命令

ffmpeg -i Apple.ts -map 0:0 -map 0:1 -c copy -f segment -segment_time 10 -segment_list test.m3u8 -segment_format ts 'fileSequence%d.ts'
文件确实被分割,但值不精确。请参见下面生成的.m3u8中,目标持续时间为12,但我指定了10

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOWCACHE:1
#EXTINF:11.478100,
fileSequence0.ts
#EXTINF:10.410400,
fileSequence1.ts
#EXTINF:11.745067,
fileSequence2.ts
#EXTINF:7.841167,
fileSequence3.ts
#EXTINF:8.024678,
fileSequence4.ts
#EXT-X-TARGETDURATION:12
#EXT-X-ENDLIST

另外,如果我不想要浮动点持续时间,我该怎么做?

要获得严格的持续时间,您需要确保您的输入文件已以严格的i图片速率编码。使用ffmpeg对原始mp4.0进行编码时,确保已将关键帧间隔设置为10秒,将sc_阈值设置为0。然后运行分段命令。这将为您提供精确的10秒片段。
否则,ffmpeg将尝试在我能找到的图片结束时,在10秒标记(或您给定的任何持续时间)附近剪切

要获得严格的持续时间,您需要确保您的输入文件以严格的I图片速率编码。使用ffmpeg对原始mp4.0进行编码时,确保已将关键帧间隔设置为10秒,将sc_阈值设置为0。然后运行分段命令。这将为您提供精确的10秒片段。
否则,ffmpeg将尝试在我能找到的图片结束时,在10秒标记(或您给定的任何持续时间)附近剪切

输入文件的GOP大小是多少?您可以发布上面命令的完整控制台输出吗?输入文件的GOP大小是多少?你能为上面的命令发布完整的控制台输出吗?sc_阈值为0,为什么需要?因为场景剪切检测会在检测到场景的地方添加I个图片,为什么需要?因为场景剪切检测会在检测到场景的地方添加I个图片