我有一个Wowza服务器,我在其中广播使用JWPlayer播放的直播流。但是,Android和其他系统都可以正常工作。(在Android 4.4和JWPlayer中可以使用rtmp和hls)。这些流通过在Linux PC上运行的avconv发送到我的Wowza服务器,这个过程很顺利。
但当我尝试直接从Linux PC通过avconv发送我的流时(与上述情况相同但目的地不同),在Android上使用所有基于浏览器的播放器(包括JWPlayer)失败了。在其他系统上使用JWPlayer,例如Linux、Chromebook等,这些流却可以工作。在Android中,我从JWPlayer获得的错误信息是"No playable sources found"。
我尝试使用crtmp rtmp以及nginx rtp模块的rtmp和hls,但结果始终相同,Android无法播放。为什么这些流在使用Wowza时能够正常工作,而在Android上则会失败?
我的当前设置是带有RTMP模块的Nginx,下面是nginx.conf:
当使用wowza而不是localhost(! 92.168.0.6)通过上述命令时,它可以在Android上使用jwplayer。因此,本地服务器只能在使用wowza时才能在Android上成功运行...奇怪,有什么想法吗?我的Android平板电脑运行Android 4.4,但我也尝试了其他几个Android版本。当然,我愿意使用其他播放器进行故障排除,但最终结果必须是一些基于浏览器的播放器。
但当我尝试直接从Linux PC通过avconv发送我的流时(与上述情况相同但目的地不同),在Android上使用所有基于浏览器的播放器(包括JWPlayer)失败了。在其他系统上使用JWPlayer,例如Linux、Chromebook等,这些流却可以工作。在Android中,我从JWPlayer获得的错误信息是"No playable sources found"。
我尝试使用crtmp rtmp以及nginx rtp模块的rtmp和hls,但结果始终相同,Android无法播放。为什么这些流在使用Wowza时能够正常工作,而在Android上则会失败?
我的当前设置是带有RTMP模块的Nginx,下面是nginx.conf:
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
events {
worker_connections 1024;
}
http {
server {
listen 8080;
location / {
add_header Access-Control-Allow-Origin *;
root html;
index index.html index.htm;
}
location /hls {
# Serve HLS fragments
types {
add_header Access-Control-Allow-Origin *;
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
location /dash {
# Serve DASH fragments
root /tmp;
add_header Cache-Control no-cache;
}
}
}
rtmp {
server {
listen 1935;
chunk_size 4000;
application hls {
live on;
hls on;
hls_path /tmp/hls;
}
# MPEG-DASH is similar to HLS
application dash {
live on;
dash on;
dash_path /tmp/dash;
}
}
}
以下是avconv命令:
avconv -g 40 -threads 4 -f video4linux2 -video_size $SIZE -r 15 -i /dev/video0 -itsoffset -3.35 -i audio0.fifo -re -vcodec libx264 -r 15 -preset veryfast -tune zerolatency -aq 0 -q 3 -vbr 3 -maxrate 3M -threads 4 -f flv rtmp://192.168.0.6/hls/mycam
当使用wowza而不是localhost(! 92.168.0.6)通过上述命令时,它可以在Android上使用jwplayer。因此,本地服务器只能在使用wowza时才能在Android上成功运行...奇怪,有什么想法吗?我的Android平板电脑运行Android 4.4,但我也尝试了其他几个Android版本。当然,我愿意使用其他播放器进行故障排除,但最终结果必须是一些基于浏览器的播放器。
avconv
е‘Ң令的жҺ§е€¶еЏ°ж—Өеү—гЂ‚еҢ“е‰Қзљ„ж–№еәЏдәљеҮәи‡өи‡іе°‘дёЂдёҒй”™иҮҮпәЊе› дёғж‚ЁењЁиң“е‡ғдёж·»еЉ дғ†-re
пәЊиЂЊе®ѓйњЂи¦ЃдёЂдёҒиң“е…Өпә€еғ”иҮӨж”ңењЁ-i
之е‰Қпә‰гЂ‚ - aergistal