早上好, 我目前的项目涉及播放实时视频(目前使用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
在使用视频js将流嵌入网页之前,我使用avplay返回错误: rtmp:// localhost / myapp / live:输入/输出错误,而VLC返回错误 您的输入无法打开: VLC无法打开MRL'rtmp:// localhost / myapp / live'。检查日志以获取详细信息。
有关什么会导致VLC / avplay显示错误的任何建议?
由于 丹尼尔