首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android上播放hls/rtmp

在android上播放hls/rtmp
EN

Stack Overflow用户
提问于 2015-04-23 05:52:02
回答 1查看 1K关注 0票数 3

我有一个wowza服务器,我在其中播放jwplayer播放的实况流。不过,在android和其他系统上,一切都运行得很好。(适用于android 4.4和jwplayer (!)中的rtmp和hls )。流被发送到我的wowza服务器与运行在linux pc上的avconv,这工作得很好。

但是,当我尝试使用avconv (samme命令,与上面的情况相同,但目的地不同)将我的流直接从linux pc发送到本地服务器时,我尝试过的所有基于浏览器的播放器,包括jwplayer,在android上都会失败。streams可以在其他系统上工作,尽管使用的是jwplayer,例如linux、chromebook。我在Android中从jwplayer得到的错误是“找不到可播放的源”

我已经尝试过crtmp rtmp,还有用于rtmp和hls的nginx rtp模块。总是同样的结果,android失败了。当使用wowza时,为什么这些流在android上工作时会失败?

我现在的设置是带有rtmp模块的nginx,下面是nginx.conf:

代码语言:javascript
复制
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命令:

代码语言:javascript
复制
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)使用上面的命令时,它可以在带有jwplayer的android上工作。

因此,只有在使用wowza...odd的情况下,才能通过本地服务器使用android,有什么想法吗?我的android是一台运行android 4.4的平板电脑,但我也尝试过其他几个android版本。当然,我愿意使用其他播放器进行故障排除,但最终结果必须是一些基于浏览器的播放器。

EN

回答 1

Stack Overflow用户

发布于 2015-04-27 04:59:33

您还可以使用来自Wowza的MPEG-DASH输出,并使用bitdash HTML5 MPEG-DASH播放器:http://www.dash-player.com在安卓上的HTML5中播放它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29809560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档