4

Good morning, My current project involves playing live video (testing using a usb webcam for now). I compiled and installed nginx server with the rtmp module (obtained from https://github.com/arut/nginx-rtmp-module). The nginx configuration file is as:

worker_processes  1;

error_log  logs/error.log debug;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;

        application myapp {
            live on;

            #record keyframes;
            #record_path /tmp;
            #record_max_size 128K;
            #record_interval 30s;
            #record_suffix .this.is.flv;

            #on_publish http://localhost:8080/publish;
            #on_play http://localhost:8080/play;
            #on_record_done http://localhost:8080/record_done;
        }
    }
}

http {
    server {
        listen      8080;

        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /path/to/nginx-rtmp-module/;
        }

        location /control {
            rtmp_control all;
        }

        #location /publish {
        #    return 201;
        #}

        #location /play {
        #    return 202;
        #}

        #location /record_done {
        #    return 203;
        #}

        location /rtmp-publisher {
            root /path/to/nginx-rtmp-module/test;
        }

        location / {
            root /path/to/nginx-rtmp-module/test/www;
        }
    }
}

The command line to start streaming is as:

avconv -s vga -f video4linux2 -i /dev/video0 -vcodec libx264 -an -f flv -b 800k -r 30 rtmp://localhost/myapp/live

While streaming, the following stats are displayed:

avconv version 10.1, Copyright (c) 2000-2014 the Libav developers
  built on May 13 2014 15:13:23 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
[video4linux2 @ 0x2f06220] Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
  Duration: N/A, start: 112393.305806, bitrate: 73728 kb/s
    Stream #0.0: Video: rawvideo, yuyv422, 640x480, 73728 kb/s, 15 fps, 1000k tbn
[libx264 @ 0x2f187a0] using cpu capabilities: MMX2 SSE2Fast SSSE3 FastShuffle SSE4.2 AVX
[libx264 @ 0x2f187a0] profile High, level 3.0
[libx264 @ 0x2f187a0] 264 - core 120 r2151 a3f4407 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=1 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=abr mbtree=1 bitrate=800 ratetol=1.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, flv, to 'rtmp://localhost/myapp/live':
  Metadata:
    encoder         : Lavf55.12.0
    Stream #0.0: Video: libx264, yuv420p, 640x480, q=-1--1, 800 kb/s, 1k tbn, 30 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (rawvideo -> libx264)
Press ctrl-c to stop encoding
frame= 3283 fps= 30 q=26.0 size=   10592kB time=108.33 bitrate= 810.5kbits/s

Before embedding the stream onto a web page using, say videojs, I am using avplay which returns the error: rtmp://localhost/myapp/live: Input/output error while VLC returns the error Your input can't be opened: VLC is unable to open the MRL 'rtmp://localhost/myapp/live'. Check the log for details.

Any suggestions about what would cause the errors displayed by VLC/avplay?

Thanks Daniel

llogan
  • 87,794
  • 21
  • 166
  • 190

0 Answers0