FFmpeg 不会将查询字符串参数添加到后续请求 URL

FFmpeg 不会将查询字符串参数添加到后续请求 URL

处理 HLS/Dash 播放列表时(其中查询参数用于身份验证)- ffmpeg 没有在数据块请求中添加这些查询字符串,这导致服务器出现 403 禁止错误。

例子:

ffmpeg -i "http://example.com/playlist.m3u8?auth=foo" out.mp4

块请求如下:http://example.com/chunk1.ts-而不是http://example.com/chunk1.ts?auth=foo

有什么选项可以解决这个问题,或者它不受支持,或者是一个错误?

答案1

HLS 的工作方式如下:查询字符串参数(如果有)用于查询 M3U8 块列表,而 M3U8 块列表又包含块的 URL。如果这些 URL 来自块列表(即你无法控制) 不包含查询参数,则将使用 none 来查询它们。

您可以通过您控制的 Web 服务代理 M3U8 来解决此问题,该服务会将查询参数添加到块列表中。

相关内容