2017-01-17 2 views
1

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

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

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

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

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-агент, или -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 

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

ответ

0

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

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

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

1

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

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

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

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

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

ffmpeg -v error -stats 

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

q=$(printf 'User-Agent: Mozilla\r\nx') 
ffmpeg -headers "${q%x}" 
Смежные вопросы