我已经在CentOS上安装了ffmpeg,它很高兴去年编码文件音频文件,没问题。
但是,我现在想用它来访问音频流,以替换我目前使用的一些笨重的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
提前致谢!
答案 0 :(得分: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}"
答案 1 :(得分:0)
我正在回答我自己的问题,因为经过一个小时或更长时间的挖掘,看来我正在运行的旧版ffmpeg,我从一个众所周知的回购中得到的,不支持-user_agent选项/开关,也不是-headers切换(感谢Steven Penny)。
所以,我从官方网站下载了一个ffmpeg的Linux静态版本。在通过SSH将其弹出服务器并记住将权限更改为755之后,我设法让-user_agent选项/开关工作。
我希望自己回答我的问题,将来会帮助别人。