播放流的 FFmpeg 问题

问题描述

我想通过网络播放流。当我的服务器工作时,我无法在客户端上接收音频。它是安装了 openwrt 和 USB 声卡的路由器。

当我跑步时 ffmpeg -i "udp://@:5555" -f alsa hw:0 我收到以下错误

[NULL @ 0x76b2b390] Requested output format 'alsa' is not a suitable output format
hw:0: Invalid argument

我的命令有什么问题? 路由器上的空间有限。我几乎没有处理安装ffmpeg。

有完整的日志:

root@LEDE:/proc/asound# ffmpeg -i "udp://@:5555" -f alsa hw:0
ffmpeg version 3.2.2 copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 5.4.0 (LEDE GCC 5.4.0 r3101-bce140e)
  configuration: --enable-cross-compile --cross-prefix=mips-openwrt-linux-musl- --arch=mips --target-os=linux --prefix=/usr --pkg-config=pkg-config --enable-shared --enable-static --enable-small --enable-pthreads --enable-zlib --disable-doc --disable-debug --enable-gpl --enable-version3 --disable-dxva2 --disable-lzma --disable-vaapi --disable-vda --disable-vdpau --disable-outdevs --disable-altivec --disable-vsx --disable-power8 --disable-amd3dNow --disable-amd3dNowext --disable-mmx --disable-mmxext --disable-sse --disable-sse2 --disable-sse3 --disable-ssse3 --disable-sse4 --disable-sse42 --disable-avx --disable-xop --disable-fma3 --disable-fma4 --disable-avx2 --disable-aesni --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-inline-asm --disable-mipsdsp --disable-mipsdspr2 --disable-mipsfpu --disable-msa --disable-mmi --disable-fast-unaligned --disable-runtime-cpudetect --disable-yasm --enable-libopus --enable-decoder=libopus --enable-libx264 --enable-libmp3lame
  libavutil      55. 34.100 / 55. 34.100
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.100 / 57. 56.100
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Input #0,mpegts,from 'udp://@:5555':
  Duration: N/A,start: 1.400000,bitrate: 384 kb/s
  Program 1 
    Metadata:
      service_name    : Service01
      service_provider: FFmpeg
    Stream #0:0[0x100]: Audio: mp2 ([3][0][0][0] / 0x0003),44100 Hz,stereo,s16p,384 kb/s
[NULL @ 0x76b2b390] Requested output format 'alsa' is not a suitable output format
hw:0: Invalid argument

解决方法

您的 ffmpeg 是使用 --disable-outdevs 编译的,这会禁用包括 ALSA 在内的所有输出设备。

您需要通过省略 --disable-outdevs 或添加 --enable-outdev=alsa 来重新编译。