我想在Rpsberry Pi上分发UVC摄像机的视频 我对/etc/ffserver.conf进行了如下编辑。
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 20
MaxClients 10
MaxBandwidth 500000
CustomLog -
<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 50M
</Feed>
<Stream index.html>
Format status
ACL allow 192.168.12.0 192.168.12.255
</Stream>
<Stream test.mpeg>
Feed feed1.ffm
Format mpeg
VideoSize hd720
VideoFrameRate 15
VideoBitRate 4096
VideoBufferSize 4096
VideoQMin 5
VideoQMax 51
Strict -1
</Stream>
然后,我启动了ffserver 接下来,我执行了以下命令
ffmpeg -f v4l2 -s 1280x720 -i /dev/video0 -ac 1 -f alsa -i hw:1,0 http://localhost:8090/feed1.ffm
我从同一网络上的FireFox请求192.168.12.101:8090 / test.mpeg, 但没有显示视频,并且打开了要打开的程序或文件保存对话框。
我该怎么办?
Raspberry Pi的执行结果
Input #0, video4linux2,v4l2, from '/dev/video0':
Duration: N/A, start: 519134.790720, bitrate: 147456 kb/s
Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 1280x720, 147456 kb/s, 10 fps, 10 tbr, 1000k tbn, 1000k tbc
Guessed Channel Layout for Input Stream #1.0 : mono
Input #1, alsa, from 'hw:1,0':
Duration: N/A, start: 1536994777.250578, bitrate: 768 kb/s
Stream #1:0: Audio: pcm_s16le, 48000 Hz, mono, s16, 768 kb/s
[tcp @ 0x23ec7f0] Connection to tcp://localhost:8090 failed (Connection refused), trying next address
Sat Sep 15 15:59:37 2018 [ffm @ 0xf10e40]Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Sat Sep 15 15:59:37 2018 [ffm @ 0xf10e40]Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Sat Sep 15 15:59:37 2018 127.0.0.1 - - [GET] "/feed1.ffm HTTP/1.1" 200 4175
[tcp @ 0x2401d50] Connection to tcp://localhost:8090 failed (Connection refused), trying next address
Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
Metadata:
creation_time : now
encoder : Lavf57.56.101
Stream #0:0: Audio: mp2, 22050 Hz, mono, s16, 64 kb/s
Metadata:
encoder : Lavc57.64.101 mp2
Stream #0:1: Video: mpeg1video, yuv420p, 1280x720, q=5-51, 4096 kb/s, 10 fps, 1000k tbn, 15 tbc
Metadata:
encoder : Lavc57.64.101 mpeg1video
Side data:
cpb: bitrate max/min/avg: 8192000/0/4096000 buffer size: 33554432 vbv_delay: -1
Stream mapping:
Stream #1:0 -> #0:0 (pcm_s16le (native) -> mp2 (native))
Stream #0:0 -> #0:1 (rawvideo (native) -> mpeg1video (native))
Press [q] to stop, [?] for help
[alsa @ 0x23ebee0] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[alsa @ 0x23ebee0] ALSA buffer xrun. 48kB time=00:00:00.13 bitrate=2949.1kbits/s dup=3 drop=0 speed=0.251x
[video4linux2,v4l2 @ 0x23ea230] Thread message queue blocking; consider raising the thread_queue_size option (current value: 8)
[alsa @ 0x23ebee0] ALSA buffer xrun.276kB time=00:00:02.40 bitrate= 942.1kbits/s dup=30 drop=0 speed=0.201x
Sat Sep 15 15:59:55 2018 [mpeg @ 0xf136d0]VBV buffer size not set, using default size of 130KB speed=0.844x
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
frame= 107 fps=3.1 q=2.0 Lsize= 856kB time=00:00:14.06 bitrate= 498.6kbits/s dup=80 drop=0 speed=0.413x
video:844kB audio:2kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.120285%
Sat Sep 15 16:00:11 2018 127.0.0.1 - - [POST] "/feed1.ffm HTTP/1.1" 200 876544
Sat Sep 15 16:00:11 2018 [mpeg @ 0xf136d0]buffer underflow st=0 bufi=0 size=418
Sat Sep 15 16:00:11 2018 192.168.12.150 - - [GET] "/test.mpeg HTTP/1.1" 200 29263
Exiting normally, received signal 2.
192.168.12.101:8090的结果
ffserver Status
Available Streams
Path Served
Conns
bytes Format Bit rate
kbit/s Video
kbit/s
Codec Audio
kbit/s
Codec Feed
index.html 1 0 - - - -
test.mpeg 0 0 mpeg 4160 4096 mpeg1video 64 mp2 feed1.ffm
Feed feed1.ffm
Stream type kbit/s codec Parameters
0 audio 64 mp2 1 channel(s), 22050 Hz
1 video 4096 mpeg1video 1280x720, q=5-51, fps=15
Connection Status
Number of connections: 1 / 10
Bandwidth in use: 0k / 10000k
# File IP Proto State Target bit/s Actual bit/s Bytes transferred
1 index.html 192.168.12.150 HTTP/1.1 HTTP_WAIT_REQUEST 0 0 0