如何在ffmpeg中设置useragent?
我在媒体服务器上实现了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尝试过的格式:
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)'"发布于 2020-01-09 12:22:42
首先,操作尝试有中断的引号:
"... "rtmp://172.20.1.10/live/testnew -user_agent 'FMLE/3.0 (compatible; FMSc/1.0)'"-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您需要-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如果添加了-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但是,如果在尝试添加多个标头时语法错误,则-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只有在多个标头上使用正确的语法(即单个-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发布于 2019-01-12 21:45:20
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发布于 2015-12-31 01:03:12
-headers 'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"'User agent - Wikipedia
此外,您可能需要包括CRLF:
-headers $'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"\r\n'https://stackoverflow.com/questions/34525487
复制相似问题