Установить 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'

Как включить куки в ffmpeg HLS

Другие вопросы по тегам