Установить useragent в ffmpeg
Как установить useragent в ffmpeg?
Я реализовал проверку SWF на медиа-сервере и разрешил некоторым пользовательским агентам не проверять SWF. Но проблема в том, что я не могу установить useragent в 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)'"
2 ответа
Во-первых, попытки OP нарушили котировки:
"... "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
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**My code**
Это сработало для меня:
-user-agent "Mozilla/5.0 (compatible; Companybot/1.0; +http://www.Thecompany.com)"
-headers 'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"'
Агент пользователя - Википедия
Также вам может понадобиться включить CRLF:
-headers $'User-Agent: "FMLE/3.0 (compatible; FMSc/1.0)"\r\n'