我有一个小猎犬骨黑色,我正在尝试将实时视频从中流式传输到OSX计算机。如果我将其指向本地 ffserver,流式客户端药水似乎有效。
root@beaglebone:~# ffmpeg -f v4l2 -s 320x240 -r 30 -i /dev/video0 http://127.0.0.1:8090/feed1.ffm
ffmpeg version N-78848-gf114839 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-O3 -I/root/ffmpeg_build/include -mfpu=neon -mtune=cortex-a8' --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --enable-gpl --enable-libass --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
libavutil 55. 19.100 / 55. 19.100
libavcodec 57. 27.101 / 57. 27.101
libavformat 57. 27.100 / 57. 27.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 38.100 / 6. 38.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 101977.117890, bitrate: 36864 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Output #0, ffm, to 'http://127.0.0.1:8090/feed1.ffm':
Metadata:
creation_time : 2016-03-03 05:32:52
encoder : Lavf57.27.100
Stream #0:0: Video: mjpeg, yuv422p, 320x240, q=2-31, 100 kb/s, 30 fps, 1000k tbn, 20 tbc
Metadata:
encoder : Lavc57.27.101 mjpeg
Side data:
cpb: bitrate max/min/avg: 200000/0/100000 buffer size: 200000 vbv_delay: -1
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo (native) -> mjpeg (native))
Press [q] to stop, [?] for help
但是,如果我将其指向远程(我的计算机的)ffserver,它会抛出错误
root@beaglebone:~# ffmpeg -f v4l2 -s 320x240 -r 30 -i /dev/video0 http://192.168.200.40:8090/feed1.ffm
ffmpeg version N-78848-gf114839 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 4.9.2 (Debian 4.9.2-10)
configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags='-O3 -I/root/ffmpeg_build/include -mfpu=neon -mtune=cortex-a8' --extra-ldflags=-L/root/ffmpeg_build/lib --bindir=/root/bin --enable-gpl --enable-libass --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree
libavutil 55. 19.100 / 55. 19.100
libavcodec 57. 27.101 / 57. 27.101
libavformat 57. 27.100 / 57. 27.100
libavdevice 57. 0.101 / 57. 0.101
libavfilter 6. 38.100 / 6. 38.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 102012.942038, bitrate: 36864 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 320x240, 36864 kb/s, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
[ffm @ 0x1427df0] no encoder found for codec id 141
http://192.168.200.40:8090/feed1.ffm: Invalid argument
此 AVCodecID 枚举中的第 141 个编解码器似乎AV_CODEC_ID_VP8/AV_CODEC_ID_PICTOR,具体取决于是否定义了AV_CODEC_ID_MPEG2VIDEO_XVMC? https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/avcodec.h
还包括我的 ffserver 配置。
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 10000
CustomLog -
NoDaemon
<Feed feed1.ffm>
File ./feed1.ffm
Truncate
ACL allow localhost
ACL allow 192.168.200.0 192.168.200.255
</Feed>
<Stream test.mjpg>
Feed feed1.ffm
Format mpjpeg
NoAudio
VideoSize 320x240
VideoFrameRate 30
StartSendOnKey
VideoBitRate 400
VideoIntraOnly
Strict -1
PreRoll 0
</Stream>
<Stream status.html>
Format status
ACL allow localhost
ACL allow 192.168.0.0 192.168.255.255
</Stream>
无论如何,我不知道如何处理这个问题。任何指示将不胜感激。
您是否尝试检查问题是否出在服务器端?您是否在 http://192.168.200.40:8090 中使用了一些ping?服务器响应 ?我说这是因为它可能是由防火墙问题引起的,例如。