Git Product home page Git Product logo

tsingsee / easyplayer Goto Github PK

View Code? Open in Web Editor NEW
589.0 58.0 220.0 88.83 MB

An free, elegant, simple, fast RTSP/RTMP/HLS/HTTP Player.EasyPlayer support RTSP(RTP over TCP/UDP)version& RTMP version & Pro version,cover all kinds of streaming media!EasyPlayer是一款免费、精炼、高效、稳定的流媒体播放器,分为RTSP版、RTMP版和Pro版本,支持各种各样的流媒体音视频播放!

Home Page: http://www.pvale.com/

rtsp-player rtmp-player media-player android-player ios-player easyplayer hls-player easydarwin

easyplayer's Issues

急:请问 .m3u8流视频,在ios浏览器端,播放时报错e._msectl.appendInitSegment,是什么原因?怎么解决?

报错详细信息

"Uncaught (in promise) " {name: "TypeError", message: "null is not an object (evaluating 'e._msectl.appendInitSegment')", stack: "@http://localhost:8080/static/EasyPlayer/EasyPlayer-element.min.js:1:1402407\n@http://localhost:8080/static/EasyPlayer/EasyPlayer-element.min.js:1:500182\n@http://localhost:8080/static/EasyPlayer/EasyPlayer-element.min.js:1:1377196\npromiseReactionJob@[native code]"}

能出一个英文版吗

只有很少的文字,能不能出个语言选择,这样英文版也可以用在其他国家。我测试了不少RTSP的播放工具,感觉这个不错,就是没有英文版本。

报错

b5541470-573a-42fe-9adb-1155138af4aa:1 Uncaught TypeError: u is not a function
at b5541470-573a-42fe-9adb-1155138af4aa:1

关于easyplayer的recording功能

我在利用Android的easypusher进行直播推流,然后利用windows版本的easyplayer进行播放,可以成功播放,但是利用recording功能保存下来的视频只有画面没有声音,不知道这是什么原因造成的。

硬解码怎么回调出yuv数据呢?

您好,请教一下,使用安卓api硬解码怎么回调出yuv 数据呢?

` do {
if (frameInfo != null) {
byte[] pBuf = frameInfo.buffer;
index = mCodec.dequeueInputBuffer(10);
if (index >= 0) {
ByteBuffer buffer = mCodec.getInputBuffers()[index];
buffer.clear();
if (pBuf.length > buffer.remaining()) {
mCodec.queueInputBuffer(index, 0, 0, frameInfo.stamp, 0);
} else {
buffer.put(pBuf, frameInfo.offset, frameInfo.length);
mCodec.queueInputBuffer(index, 0, buffer.position(), frameInfo.stamp + differ, 0);
}
frameInfo = null;
}
}
index = mCodec.dequeueOutputBuffer(info, 10); //
/* //此处回调数据出去
if (index > 0) {
Image image = mCodec.getOutputImage(index);
if (image != null) {
byte[] dataFromImage = getDataFromImage(image, COLOR_FormatNV21);
if (i420callback != null) {
i420callback.onI420Data(dataFromImage, frameInfo);
}
}

                            }*/


                            switch (index) {
                                case MediaCodec.INFO_OUTPUT_BUFFERS_CHANGED:
                                    Log.i(TAG, "INFO_OUTPUT_BUFFERS_CHANGED");
                                    outputBuffers = mCodec.getOutputBuffers();

                                    break;
                                case MediaCodec.INFO_OUTPUT_FORMAT_CHANGED:
                                    MediaFormat mf = mCodec.getOutputFormat();
                                    mCodec.getCodecInfo();
                                    Log.i(TAG, "INFO_OUTPUT_FORMAT_CHANGED :" + mf);
                                    break;
                                case MediaCodec.INFO_TRY_AGAIN_LATER:
                                    // 输出为空
                                    break;
                                default:
                                    // 后补
                                    if(outputBuffers!=null){
                                        ByteBuffer outputBuffer = outputBuffers[index];
                                        byte[] arr = new byte[outputBuffer.remaining()];
                                        outputBuffer.get(arr);
                                        //i420callback.onI420Data(arr,frameInfo);
                                        Log.d("aaa",arr.length+"");
                                    }
                                    // -1表示为第一帧数据
                                    long newSleepUs = -1;
                                    boolean firstTime = previewStampUs == 0l;
                                    if (!firstTime) {
                                        long sleepUs = (info.presentationTimeUs - previewStampUs);
                                        if (sleepUs > 50000) {
                                            // 时间戳异常,可能服务器丢帧了。
                                            Log.w(TAG, "sleep time.too long:" + sleepUs);
                                            sleepUs = 50000;
                                        }
                                        {
                                            long cache = mNewestStample - previewStampUs;
                                            newSleepUs = fixSleepTime(sleepUs, cache, 0);
                                        }
                                    }
                                    previewStampUs = info.presentationTimeUs;

                                    if (false && Build.VERSION.SDK_INT >= 21) {

                                        Log.d(TAG, String.format("releaseoutputbuffer:%d,stampUs:%d", index, previewStampUs));
                                        mCodec.releaseOutputBuffer(index, previewStampUs);
                                    } else {
                                        if (newSleepUs < 0) {
                                            newSleepUs = 0;
                                        }

// Log.i(TAG,String.format("sleep:%d", newSleepUs/1000));
Thread.sleep(newSleepUs / 1000);
mCodec.releaseOutputBuffer(index, true);
}
if (firstTime) {
Log.i(TAG, String.format("POST VIDEO_DISPLAYED!!!"));
ResultReceiver rr = mRR;
if (rr != null) rr.send(RESULT_VIDEO_DISPLAYED, null);
}
}
} while (frameInfo != null || index < MediaCodec.INFO_TRY_AGAIN_LATER);`

需求:停止播放时不清屏

先播放第一路流,
再播放第二路流,
希望是平滑切换,就像电影场景一样。目前是必须先stop,再openstream,这样会在中间黑屏,很难看。如何解决这个问题?

4K视频流异常

4K视频流,无论软解还是硬解,解码很慢。使用硬解,跑一小会儿提示“超出缓冲区大小”,进而会有段错误。

不能播放?

Error: rtsp://本机IP:554/stream0.sdp: EasyRTSP_GetErrCode:-10057 :Failed to get RTSP OPTIONS: URL is not of the form "rtsp://"

这个库怎么播放本地mp4文件啊!!!?

我已经会用他来播放rtsp流媒体了,但不知道怎么播放本地mp4文件,难道还要下vlc库来播放吗,这样好麻烦,还有,播放rtsp的时候本地目录会生成很多text0.h264的大文件,空间已经撑爆了,怎么不让他生成啊

有群晖插件吗?

如果做成群晖插件,远程随时录制直播视频到家里的NAS就方便了。

硬解会卡顿

用硬解的方式调用open_stream 方法后,摄像机转动的时候,会卡顿,卡顿的时候,回调参数中的 的 type(视频帧类型) 值为1 ,
请问这个卡顿问题应该如何处理 ?
用软解的时候不存在这个问题,

Android版本不能播放MPEG4视频流

@jiaozebo 安卓版本不能播放MPEG4的视频流,如果不能播,能够在上层给出提示:视频格式不支持,示例播放url:rtsp://218.204.223.237:554/live/1/66251FC11353191F/e7ooqwcfbqjoo80j.sdp

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.