You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下Zeranoe版FFmpeg无法自定义User Agent的原因及解决方法

问题分析与解决方法

为什么自定义UA没生效?

你当前使用的-headers参数是作用于你指定的主输入文件(也就是本地的local.m3u8),但本地文件的读取不需要HTTP请求头,所以这个参数直接被FFmpeg忽略了。而m3u8内部引用的HTTP分片请求,会使用FFmpeg默认的User-Agent(也就是你看到的Lavf/58.29.100),不会继承这个-headers的设置。

另外,你提到试过-user-agent参数但没生效,很大概率是参数顺序不对——FFmpeg的全局选项(比如-user-agent)必须放在输入文件(-i)之前,否则不会被应用到后续的请求中。

正确的自定义UA方法

下面两种方法都能让m3u8里的所有HTTP分片请求使用你自定义的User-Agent:

方法1:使用全局-user-agent参数(推荐)

把-user-agent放在-i之前,确保它是全局生效的:

ffmpeg.exe -user-agent "This does Work" -protocol_whitelist file,http,https,tcp,tls,crypto -i "local.m3u8" -c copy "out.mp4" -v trace

方法2:使用HTTP协议级别的http_opts选项

通过-http_opts指定UA,同样要放在输入之前:

ffmpeg.exe -http_opts "user-agent=This does Work" -protocol_whitelist file,http,https,tcp,tls,crypto -i "local.m3u8" -c copy "out.mp4" -v trace

额外注意点

  • Windows命令行中,直接用双引号包裹字符串即可,不需要用"转义引号,这可能也是你之前尝试失败的小细节之一。
  • 如果需要设置多个HTTP头,可以用-http_headers参数(同样放在输入前),格式是把多个头用换行分隔:
    ffmpeg.exe -http_headers "User-Agent: This does Work
    Referer: http://example.com" -protocol_whitelist file,http,https,tcp,tls,crypto -i "local.m3u8" -c copy "out.mp4" -v trace
    

内容的提问来源于stack exchange,提问作者leumasme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 10:02:46