Потоковая передача с помощью ffserver и ffmpeg на RaspberryPi - PullRequest
0 голосов
/ 15 сентября 2018

Я хочу передать видео с камеры UVC на Rpsberry Pi. Я отредактировал /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. Затем я выполнил следующую команду * 1004.*

ffmpeg -f v4l2 -s 1280x720 -i /dev/video0 -ac 1 -f alsa -i hw:1,0 http://localhost:8090/feed1.ffm

Я запросил 192.168.12.101: 8090 / test.mpeg из FireFox в той же сети, но видео не отображается и открывается программа или открывается диалог сохранения файла.

Что следуетЯ делаю?

Результат выполнения 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 
...