Пользовательский агент ffmpeg не работает

Я установил ffmpeg в CentOS, и он успешно кодирует аудио файлы в течение последнего года, никаких проблем.

Тем не менее, я хотел бы использовать его для доступа к аудиопотоку сейчас, чтобы заменить неуклюжий бит php-кода, который я сейчас использую, но я бы хотел применить пользовательский пользовательский агент, чтобы мои клиенты распознавали входящее соединение.

Я пробовал -user-agent, -user_agent и -headers, но все три возвращают «Нераспознанная опция».

Код, который я использую, за исключением агента пользователя:

ffmpeg -t 3600 -i http://my.radio.com:8000/1 -vn -ar 44100 -ac 2 -ab 128k -f mp3 /var/www/vhosts/mywebsite.com/httpdocs/test.mp3

И это работает без проблем, но когда я пытаюсь добавить -user_agent, -user-agent или -headers, происходит сбой с вышеуказанной ошибкой.

Если это поможет, информация о версии:

FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC' --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.19. 0 /  1.19. 0
libswscale     0.11. 0 /  0.11. 0
libpostproc   51. 2. 0 / 51. 2. 0
FFmpeg 0.6.5
libavutil     50.15. 1 / 50.15. 1
libavcodec    52.72. 2 / 52.72. 2
libavformat   52.64. 2 / 52.64. 2
libavdevice   52. 2. 0 / 52. 2. 0
libavfilter    1.19. 0 /  1.19. 0
libswscale     0.11. 0 /  0.11. 0
libpostproc   51. 2. 0 / 51. 2. 0

Заранее спасибо!

1

Решение

Вы можете использовать опцию -headers:

ffmpeg -headers 'User-Agent: Mozilla' -i http://my.radio.com:8000/1

Обратите внимание, что вы получите предупреждение:

[http @ 00000000004795c0] No trailing CRLF found in HTTP header.

Начиная с версии 2.8 FFmpeg, CRLF добавлен если нужно. Вы можете
Приглушите предупреждение, если хотите:

ffmpeg -v error -stats

Или вы можете включить CRLF самостоятельно:

q=$(printf 'User-Agent: Mozilla\r\nx')
ffmpeg -headers "${q%x}"
1

Другие решения

Я отвечаю на свой вопрос, потому что после еще одного часа копания появляется старая версия ffmpeg, которую я использую, которую я получил из хорошо известного репозитория, не поддерживает опцию / ключ -user_agent или ключ — Заголовки переключаются либо (спасибо Стивену Пенни).

Итак, я загрузил статическую сборку Linux ffmpeg с официального сайта. И после того, как я перебросил его через сервер по SSH и не забыл изменить разрешения на 755, мне удалось настроить параметр /user_agent / переключиться на работу.

Я надеюсь, что мой собственный ответ на мой вопрос, поможет другим в будущем.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector