Я установил 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
Заранее спасибо!
Вы можете использовать опцию -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}"
Я отвечаю на свой вопрос, потому что после еще одного часа копания появляется старая версия ffmpeg, которую я использую, которую я получил из хорошо известного репозитория, не поддерживает опцию / ключ -user_agent или ключ — Заголовки переключаются либо (спасибо Стивену Пенни).
Итак, я загрузил статическую сборку Linux ffmpeg с официального сайта. И после того, как я перебросил его через сервер по SSH и не забыл изменить разрешения на 755, мне удалось настроить параметр /user_agent / переключиться на работу.
Я надеюсь, что мой собственный ответ на мой вопрос, поможет другим в будущем.