早上好,我目前的项目涉及播放实时视频(目前使用USB网络摄像头进行测试) . 我使用rtmp模块(从https://github.com/arut/nginx-rtmp-module获得)编译并安装了nginx服务器 . nginx配置文件如下:

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;
        }
    }
}

启动流的命令行如下:

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

在流式传输时,会显示以下统计信息:

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

在使用,例如videojs将流嵌入网页之前,我使用avplay返回错误:rtmp:// localhost / myapp / live:输入/输出错误,而VLC返回错误您的输入可以't be opened: VLC is unable to open the MRL ' rtmp:// localhost / MYAPP /活” . 检查日志以获取详细信息 .

有关什么会导致VLC / avplay显示错误的任何建议?

谢谢Daniel