如何使用exoplayer流rtsp url? [英] how to stream rtsp url using exoplayer?

查看:1512
本文介绍了如何使用exoplayer流rtsp url?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想使用exoplayer流rtsp视频.我正在使用 ExoMedia库,它是一个Android ExoPlayer包装器.我在stackoverflow上进行了搜索,但没有找到任何好的答案.经过一些Google搜索,我发现exoplayer不支持rtsp流 issue 55 . 有什么办法可以使用exoplayer流rtsp url? 这是我的代码.

I want to stream rtsp video using exoplayer. I am using ExoMedia library which is an An Android ExoPlayer wrapper. I have search on stackoverflow but I didn't find any good answer. After some google search I found that exoplayer does not support rtsp stream issue 55. Is there any way to stream rtsp url using exoplayer? Here is my code.

public class MainActivity extends AppCompatActivity implements OnPreparedListener{
    EMVideoView emPlayer;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        playVideo();
    }


    private void playVideo() {
        emPlayer = (EMVideoView)findViewById(R.id.video_view);
        emPlayer.setOnPreparedListener(this);

        emPlayer.setVideoURI(Uri.parse("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov"));
    }

    @Override
    public void onPrepared() {
        emPlayer.start();
        Log.v("TAG","video is playing");
    }
}

这是我的日志

com.google.android.exoplayer.ExoPlaybackException: com.google.android.exoplayer.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov
           at com.google.android.exoplayer.SampleSourceTrackRenderer.maybeThrowError(SampleSourceTrackRenderer.java:262)
           at com.google.android.exoplayer.SampleSourceTrackRenderer.maybeThrowError(SampleSourceTrackRenderer.java:148)
           at com.google.android.exoplayer.ExoPlayerImplInternal.incrementalPrepareInternal(ExoPlayerImplInternal.java:273)
           at com.google.android.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:203)
           at android.os.Handler.dispatchMessage(Handler.java:98)
           at android.os.Looper.loop(Looper.java:135)
           at android.os.HandlerThread.run(HandlerThread.java:61)
           at com.google.android.exoplayer.util.PriorityHandlerThread.run(PriorityHandlerThread.java:40)
        Caused by: com.google.android.exoplayer.upstream.HttpDataSource$HttpDataSourceException: Unable to connect to rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov
           at com.google.android.exoplayer.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:191)
           at com.google.android.exoplayer.upstream.DefaultUriDataSource.open(DefaultUriDataSource.java:133)
           at com.google.android.exoplayer.extractor.ExtractorSampleSource$ExtractingLoadable.load(ExtractorSampleSource.java:823)
           at com.google.android.exoplayer.upstream.Loader$LoadTask.run(Loader.java:222)
           at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
           at java.util.concurrent.FutureTask.run(FutureTask.java:237)
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
           at java.lang.Thread.run(Thread.java:818)
        Caused by: java.net.MalformedURLException: Unknown protocol: rtsp
           at java.net.URL.<init>(URL.java:182)
           at java.net.URL.<init>(URL.java:125)
           at com.google.android.exoplayer.upstream.DefaultHttpDataSource.makeConnection(DefaultHttpDataSource.java:330)
           at com.google.android.exoplayer.upstream.DefaultHttpDataSource.open(DefaultHttpDataSource.java:189)
           at com.google.android.exoplayer.upstream.DefaultUriDataSource.open(DefaultUriDataSource.java:133) 
           at com.google.android.exoplayer.extractor.ExtractorSampleSource$ExtractingLoadable.load(ExtractorSampleSource.java:823) 
           at com.google.android.exoplayer.upstream.Loader$LoadTask.run(Loader.java:222) 
           at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
           at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
           at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
           at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
           at java.lang.Thread.run(Thread.java:818) 

推荐答案

现在,ExoPlayer支持RTSP- https://github.com/google/ExoPlayer/pull/3854

Now ExoPlayer has support RTSP - https://github.com/google/ExoPlayer/pull/3854

您还可以按照以下步骤查看带有rtsp的示例应用- https://github.com/google/ExoPlayer/pull/3854#issuecomment-377010803

Also you can follow to see example app with rtsp - https://github.com/google/ExoPlayer/pull/3854#issuecomment-377010803

这篇关于如何使用exoplayer流rtsp url?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆