транскодирование потока rtsp с помощью ffserver / ffmpeg - PullRequest
0 голосов
/ 30 июня 2018

У меня есть купольная веб-камера unifi. Подключен через USG Pro4. Я посылаю RTSP в прямом эфире в 1024x576px. До сих пор я использовал ffserver для перекодирования потока в новый поток mpjpeg, который я могу показать в html-файле. Но после того, как я обновил ffserver до последней версии. Это не работает.

Использование debian.

Файл ffserver.conf:


    HTTPPort 8090
    # bind to all IPs aliased or not
    HTTPBindAddress 0.0.0.0
    # max number of simultaneous clients
    MaxClients 1000
    # max bandwidth per-client (kb/s)
    MaxBandwidth 100000
    # Suppress that if you want to launch ffserver as a daemon.
    # NoDaemon
    NoDefaults
    
    File /tmp/feed1.ffm
    FileMaxSize 500M
    

    
    Feed feed1.ffm
    Format mpjpeg
    VideoCodec mjpeg
    VideoFrameRate 1
    #VideoBufferSize 80000
    VideoQMin 1
    VideoQMax 5
    VideoSize 1024x576
    PreRoll 0
    Noaudio
    

Запуск ffmpeg:

`ffmpeg -rtsp_transport tcp -re -i "rtsp://user:pass@193.213.XXX.XXX:554/s2" -b:v 1016k http://localhost:8090/feed1.ffm`

Я пробовал разные стартапы после поиска в гугле. Но я могу получить 1-10 кадров в секунду, прежде чем он выключится. Иногда я получаю:

`rtsp://user:pass@193.213.XXX.XXX:554/s2: Invalid data found when processing input`

    Input #0, rtsp, from 'rtsp://user:pass@193.213.XXX.XXX:554/s2':
      Metadata:
        title           : s2
      Duration: N/A, start: 0.000000, bitrate: N/A
        Stream #0:0: Audio: aac (LC), 11025 Hz, mono, fltp
        Stream #0:1: Video: h264 (Main), yuvj420p(pc, bt709, progressive), 1024x576 [SAR 189:190 DAR 168:95], 1 fps, 1 tbr, 90k tbn, 2 tbc
    Output #0, ffm, to 'http://localhost:8090/feed1.ffm':
      Metadata:
        title           : s2
        creation_time   : now
        encoder         : Lavf57.56.101
        Stream #0:0: Video: mjpeg, yuvj420p(pc), 1024x576 [SAR 189:190 DAR 168:95], q=1-5, 1016 kb/s, 1 fps, 1000k tbn, 1 tbc
        Metadata:
          encoder         : Lavc57.64.101 mjpeg
        Side data:
          cpb: bitrate max/min/avg: 0/0/1016000 buffer size: 0 vbv_delay: -1
    Stream mapping:
      Stream #0:1 -> #0:0 (h264 (native) -> mjpeg (native))
    Press [q] to stop, [?] for help
    frame=    4 fps=0.7 q=2.1 Lsize=     564kB time=00:00:03.00 bitrate=1540.1kbits/s dup=1 drop=0 speed=0.54x
    video:558kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.089245%

Есть ли простой способ заставить это работать, или есть намного лучший способ сделать это? Чего я хочу от этого, так это живого потока веб-камер на html-сайте, который работает на всех платформах без каких-либо плагинов на стороне клиента.

...