ffmpeg短划线段偏移量

ffmpeg短划线段偏移量,ffmpeg,mpeg-dash,transcoding,dash.js,shaka,Ffmpeg,Mpeg Dash,Transcoding,Dash.js,Shaka,我正在尝试将实时转码(如“plex”或“emby”)与我的应用程序集成 我可以向shaka player或dash.js提供dash内容,但只能在“实时模式”下提供。但我想通过玩家实现搜索 我看了plex,为了实现这一点,他们创建了自己的mpd文件,并且持续时间很长,所以玩家将拥有一个完整的seekbar 但是,在寻找时,玩家会要求一个段号,例如:449。我需要停止ffmpeg并用偏移量重新启动(-ss),但ffmpeg只会用初始段从段0重新启动转码会话 我想告诉ffmpeg从seekpoint

我正在尝试将实时转码(如“plex”或“emby”)与我的应用程序集成

我可以向shaka player或dash.js提供dash内容,但只能在“实时模式”下提供。但我想通过玩家实现搜索

我看了plex,为了实现这一点,他们创建了自己的mpd文件,并且持续时间很长,所以玩家将拥有一个完整的seekbar

但是,在寻找时,玩家会要求一个段号,例如:449。我需要停止ffmpeg并用偏移量重新启动
(-ss)
,但ffmpeg只会用初始段从段0重新启动转码会话

我想告诉ffmpeg从seekpoint开始,但只从segment number开始输出,现在开始

当播放hls和mpegts时,我可以告诉ffmpeg在某一段输出:使用选项
-segment\u start\u number
,但这不适用于dash。和plex使用他们自己的基于ffmpeg的转码器,选项为
-跳过\u到\u段

我试图通过在我的web服务器上保留一个手动偏移量来“破解”,即使我在seek point dash.js之后提供“假定”正确的段,而shaka player无法恢复流。。另一个habd上的VLC能够(可能更耐受)处理段中的错误

是在短划线中搜索后的假定右段(包含初始段)还是仅该段

ffmpeg是否能够开始将短划线分段为假定分段(用于搜索和恢复)

同样的技术也适用于具有强制关键帧和自定义m3u8(具有所有“预测”的段)的hls,但计算正确的段长度和正确的带宽要困难得多,而且很老练,dash更能容忍变化

我真的希望能够通过我的现场转码视频寻找

这里有一个自定义mpd文件供参考,用于启用“查找”:

media_seg_name
是我预先设置自定义搜索点的地方,假设我想搜索到段1233,模板是:

-media_seg_name $RepresentationID$/1233_$Number$.m4s
这些段将是1233_1 1233_2 1233_*这样我可以在搜索后为正确的段提供服务。但玩家无法恢复,仍在下载后续片段。我猜,由于生成了一个新的初始段,我不知何故错过了seek之后连续播放的标题,但我可能错了


感谢您的帮助

您显示的清单是静态清单,这意味着它不是实时服务流。如果要使客户端能够通过仍在运行的实时流进行搜索,则需要定义MPD@timeShiftBufferDepth属性

动态清单示例:

与玩家合作:


也许可以使用此工作示例作为参考,以找出您的实现的不同之处?

谢谢。我看了一点,但它并没有真正帮助我,在这个意义上,我的问题是段生成,因为短跑运动员不认为我的段在有效的演示时间,在它要求它和球员摊位的那一刻。timeShiftBufferDepth实际上为我提供了seekbar和静态提要。事实上,我正试图模拟一个静态文件,在后台使用转码器,如果这有任何意义的话……挖掘之后,这是一个演示时间问题,因为使用ffmpeg中的
-ss
选项创建的块没有时移,因此片段的内容包含一个0的
eareliest_presentation_time
标记由-
ss
选项设置的时间。除了在二进制级别修改段(我不知道如何修改)之外,还有什么方法可以解决这个问题……你最终找到解决方案了吗?我目前正试图解决同样的问题。
ffmpeg -ss 0 -i movie.mkv -y -acodec aac -vcodec libx264 -f dash -min_seg_duration 1000000 -individual_header_trailer 0 -pix_fmt yuv420p -vf scale=trunc(min(max(iw\,ih*dar)\,1920)/2)*2:trunc(ow/dar/2)*2 -bsf:v h264_mp4toannexb -profile:v high -level 4.1 -map_chapters -1 -map_metadata -1 -preset veryfast -movflags frag_keyframe+empty_moov -use_template 1 -use_timeline 0 -remove_at_exit 1 -crf 23 -bufsize 7532k -maxrate 3766k -start_at_zero -threads 0 -force_key_frames expr:if(isnan(prev_forced_t),eq(t,t),gte(t,prev_forced_t+1)) -init_seg_name $RepresentationID$/0_initial.mp4 -media_seg_name $RepresentationID$/0_$Number$.m4s /transcoding_temp/Z1GVWEc/index.mpd
-media_seg_name $RepresentationID$/1233_$Number$.m4s