如何在 ffmpeg 中设置用户代理?
我在媒体服务器中实现了 SWF 验证,并允许一些用户代理不检查 SWF。但问题是,我无法在 FFMPEG 中设置用户代理。因为我需要使用 ffmpeg 以低比特率将我的一个流重新发布到核心服务器。
FFMPEG Version : ffmpeg version 1.2.6-7:1.2.6-1~trusty1
SWF verification enabled in 172.20.1.10 server
Run Code Online (Sandbox Code Playgroud)
尝试过的格式:
ffmpeg -re -i "rtmp://10.11.12.13/live/mystreams -c copy -f flv "rtmp://172.20.1.10/live/testnew -headers "UserAgent: 'FMLE/3.0 (compatible; FMSc/1.0)'"
ffmpeg -re -i "rtmp://10.11.12.13/live/mystreams -c copy -f flv "rtmp://172.20.1.10/live/testnew -user_agent 'FMLE/3.0 (compatible; FMSc/1.0)'"
ffmpeg -re -i "rtmp://10.11.12.13/live/mystreams -c copy -f flv "rtmp://172.20.1.10/live/testnew -user-agent 'FMLE/3.0 (compatible; FMSc/1.0)'"
Run Code Online (Sandbox Code Playgroud)
小智 6
ffmpeg -user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3554.0 Safari/537.36" -headers "origin: https://glive.gaodun.com" -headers "referer: https://glive.gaodun.com/space.html?isV" -i https://vod.gaodun.com/13p9Wv580v1a!!fs/SD/1.m3u8 -c copy demo.mp4
Run Code Online (Sandbox Code Playgroud)
首先,OP尝试破坏了引号:
"... "rtmp://172.20.1.10/live/testnew -user_agent 'FMLE/3.0 (compatible; FMSc/1.0)'"
Run Code Online (Sandbox Code Playgroud)
该-user-agent选项已弃用,它将显示警告:
$ ffmpeg -user-agent "using -user-agent UA" -i 'https://example.com' -v trace |& grep -i user-agent
Reading option '-user-agent' ... matched as AVOption 'user-agent' with argument 'using -user_agent UA'.
[https @ 0x55df7b9dc320] the user-agent option is deprecated, please use user_agent option
User-Agent: using -user-agent UA
Run Code Online (Sandbox Code Playgroud)
你需要-user_agent(即下划线_,而不是破折号-):
$ ffmpeg -user_agent "using -user_agent UA" -i 'https://example.com' -v trace |& grep -i user-agent
User-Agent: using -user_agent UA
Run Code Online (Sandbox Code Playgroud)
如果添加-headers 'User-Agent: ',它将覆盖-user_agent:
$ ffmpeg -user_agent "using -user_agent UA" -headers 'User-Agent: using -headers UA' -i 'https://example.com' -v trace |& grep -i user-agent
Reading option '-headers' ... matched as AVOption 'headers' with argument 'User-Agent: using -headers UA'.
User-Agent: using -headers UA
Run Code Online (Sandbox Code Playgroud)
但是,如果您在尝试添加多个标头时语法错误,-headers则将无法覆盖并仍然使用默认Lavf/或-user_agent:
$ ffmpeg -user_agent "using -user_agent UA" -headers 'User-Agent: using -headers UA' -headers 'Accept: */*' -i 'https://example.com' -v trace |& grep -i user-agent
Reading option '-headers' ... matched as AVOption 'headers' with argument 'User-Agent: using -headers UA'.
User-Agent: using -user_agent UA
Run Code Online (Sandbox Code Playgroud)
仅当您在多个标头(即单个-headers+ \r\n)上使用正确的语法时,-headers 'User-Agent: 才能覆盖默认值Lavf/或-user_agent:
$ ffmpeg -user_agent "using -user_agent UA" -headers 'User-Agent: using -headers UA'$'\r\n''Accept: */*' -i 'https://example.com' -v trace |& grep -i user-agent
Reading option '-headers' ... matched as AVOption 'headers' with argument 'User-Agent: using -headers UA
User-Agent: using -headers UA
Run Code Online (Sandbox Code Playgroud)
小智 0
-headers 'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"'
Run Code Online (Sandbox Code Playgroud)
另外,您可能需要包括 CRLF:
-headers $'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"\r\n'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16670 次 |
| 最近记录: |