0

我正在为客户开发一个网站,其中一项要求是嵌入来自 HikVision DVR DS7116 的视频。我有 DVR 的 RTSP url。我需要 FFmpeg 和 FFserver 的帮助。我已经编写了我的 ffserver 配置文件。

/etc/ffserver.config

Port 9500
# bind to all IPs aliased or not
BindAddress 0.0.0.0
# max number of simultaneous clients
MaxClients 1000
# max bandwidth per-client (kb/s)
MaxBandwidth 10000
# Suppress that if you want to launch ffserver as a daemon.
NoDaemon

<Feed feed1.ffm>
File /tmp/feed1.ffm
FileMaxSize 5M
</Feed>

<Stream test.swf>
Feed feed1.ffm
Format swf
VideoCodec flv
VideoFrameRate 15
VideoBufferSize 80000
VideoBitRate 100
VideoQMin 1
VideoQMax 5
VideoSize 352x288
PreRoll 0
Noaudio
</Stream>

我接下来运行我的 ffserver 和 ffmpeg 命令

ffserver & ffmpeg -re -i rtsp://admin:12345@192.168.1.3/MPEG-4/ch1/main/av_stream  http://192.168.1.105:9500/feed1.ffm

我收到的输出如下

ffmpeg version N-80901-gfebc862 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
  configuration: --extra-libs=-ldl --prefix=/opt/ffmpeg --mandir=/usr/share/man --enable-avresample --disable-debug --enable-nonfree --enable-gpl --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --disable-decoder=amrnb --disable-decoder=amrwb --enable-libpulse --enable-libfreetype --enable-gnutls --enable-libx264 --enable-libx265 --enable-libfdk-aac --enable-libvorbis --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libspeex --enable-libass --enable-avisynth --enable-libsoxr --enable-libxvid --enable-libvidstab

  libavutil      55. 28.100 / 55. 28.100
  libavcodec     57. 48.101 / 57. 48.101
  libavformat    57. 41.100 / 57. 41.100
  libavdevice    57.  0.102 / 57.  0.102
  libavfilter     6. 47.100 /  6. 47.100
  libavresample   3.  0.  0 /  3.  0.  0
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  1.100 /  2.  1.100
  libpostproc    54.  0.100 / 54.  0.100

[rtsp @ 0x20c4720] Missing PPS in sprop-parameter-sets, ignoring
[h264 @ 0x20c7f60] non-existing PPS 0 referenced
    Last message repeated 1 times
[h264 @ 0x20c7f60] decode_slice_header error
[h264 @ 0x20c7f60] no frame!
[rtsp @ 0x20c4720] RTP: missed 1137 packets
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1125 packets
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1126 packets

Guessed Channel Layout for Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://admin:12345@192.168.1.3/MPEG-4/ch1/main/av_stream':
  Metadata:
    title           : HIK Media Server
    comment         : HIK Media Server Session Description : standard
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (Baseline), yuv420p, 352x288, 10 fps, 25 tbr, 90k tbn, 20 tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[ffm @ 0x21c0e80] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.

Output #0, ffm, to 'http://192.168.1.105:9500/feed1.ffm':
  Metadata:
    title           : HIK Media Server
    comment         : HIK Media Server Session Description : standard
    creation_time   : now
    encoder         : Lavf57.41.100
    Stream #0:0: Video: flv1 (flv), yuv420p, 352x288, q=1-5, 100 kb/s, 10 fps, 1000k tbn, 15 tbc

    Metadata:
      encoder         : Lavc57.48.101 flv
    Side data:
      cpb: bitrate max/min/avg: 200000/0/100000 buffer size: 655360000 vbv_delay: -1

Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> flv1 (flv))
Press [q] to stop, [?] for help
frame=    0 fps=0.0 q=0.0 size=       4kB time=00:00:00.00 bitrate=N/A speed=   frame=    0 fps=0.0 q=0.0 size=       4kB time=00:00:00.00 bitrate=N/A speed=   frame=    0 fps=0.0 q=0.0 size=       4kB time=00:00:00.00 bitrate=N/A speed=   Past duration 1.003319 too large
    Last message repeated 1 times
Past duration 1.005333 too large
frame=   31 fps= 15 q=31.0 size=      56kB time=00:00:02.00 bitrate= 229.4kbits/Past duration 1.005653 too large
Past duration 1.005989 too large
frame=   37 fps= 15 q=24.8 size=      76kB time=00:00:02.40 bitrate= 259.4kbits/Past duration 1.006660 too large
Past duration 1.006996 too large
frame=   46 fps= 15 q=31.0 size=      80kB time=00:00:03.00 bitrate= 218.5kbits/Past duration 1.007988 too large
Past duration 1.008659 too large
frame=   53 fps= 15 q=31.0 size=      96kB time=00:00:03.46 bitrate= 226.9kbits/Past duration 1.009987 too large
Past duration 1.010323 too large
frame=   61 fps= 15 q=24.8 size=     116kB time=00:00:04.00 bitrate= 237.6kbits/Past duration 1.010994 too large
Past duration 1.011330 too large
Past duration 1.011986 too large
frame=   68 fps= 15 q=31.0 size=     120kB time=00:00:04.46 bitrate= 220.1kbits/Past duration 1.012657 too large

[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1114 packets
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1115 packets
Past duration 1.012993 too large
frame=   76 fps= 15 q=31.0 size=     140kB time=00:00:05.00 bitrate= 229.4kbits/Past duration 1.013664 too large
Past duration 1.014320 too large
Past duration 1.014656 too large
frame=   83 fps= 15 q=31.0 size=     144kB time=00:00:05.46 bitrate= 215.8kbits/Past duration 1.015327 too large
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1103 packets
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1104 packets

Past duration 1.015999 too large
frame=   91 fps= 15 q=31.0 size=     160kB time=00:00:06.00 bitrate= 218.5kbits/Past duration 1.016655 too large
Past duration 1.017326 too large
Past duration 1.017998 too large
frame=   98 fps= 15 q=31.0 size=     180kB time=00:00:06.46 bitrate= 228.0kbits/Past duration 1.018654 too large
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1092 packets
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 1093 packets
Past duration 1.019325 too large
frame=  106 fps= 15 q=31.0 size=     184kB time=00:00:07.00 bitrate= 215.3kbits/Past duration 1.019997 too large
[rtsp @ 0x20c4720] max delay reached. need to consume packet
[rtsp @ 0x20c4720] RTP: missed 35 packets
Past duration 1.020653 too large
frame=  161 fps= 15 q=31.0 size=     264kB time=00:00:10.66 bitrate= 202.8kbits/Past duration 1.032661 too large
Past duration 1.033333 too large
frame=  167 fps= 15 q=31.0 Lsize=     276kB time=00:00:11.06 bitrate= 204.3kbits/s dup=94 drop=0 speed=0.964x
video:265kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 4.280833%

我可以看到有一些错误,流开始了。当我将输出 url 放入我的 html 代码中时,没有流。我还尝试在 VLC 中播放网络流,但没有得到任何东西。任何人都可以帮我吗?任何线索也值得赞赏。谢谢你。

我的 HTML 代码是:

<embed type="application/x-vlc-plugin" pluginspage="http://www.videolan.org"
   src="http://192.168.1.105:9500/test.swf"
   width="640"
   height="480"
   id="vlc" />
4

0 回答 0