Giter VIP home page Giter VIP logo

screenrecorder's Issues

点击START RECORDER报错,请问我该怎么处理

2020-07-09 14:42:19.943 8163-8216/net.yrom.screenrecorder E/AndroidRuntime: FATAL EXCEPTION: AudioSenderThread
Process: net.yrom.screenrecorder, PID: 8163
java.lang.IllegalStateException: Deque full
at java.util.concurrent.LinkedBlockingDeque.addLast(LinkedBlockingDeque.java:335)
at java.util.concurrent.LinkedBlockingDeque.add(LinkedBlockingDeque.java:633)
at net.yrom.screenrecorder.task.RtmpStreamingSender.sendFood(RtmpStreamingSender.java:141)
at net.yrom.screenrecorder.ui.activity.ScreenRecordActivity$2.collect(ScreenRecordActivity.java:112)
at net.yrom.screenrecorder.task.AudioSenderThread.sendRealData(AudioSenderThread.java:112)
at net.yrom.screenrecorder.task.AudioSenderThread.run(AudioSenderThread.java:70)

设置video OMX.google.h264.encoder 宽高为width=1440, height=2560,崩溃

我是动态拿的当前手机的分辨率做为宽高 当codecName 为 OMX.google.h264.encoder 宽高为width=1440, height=2560
时必现,当codecName为其他的时候 是正常的 但是 其他的 没有h264的清晰度好 使用我默认 优先使用 h264,如何解决 还是说 h264 对某种分辨率有限制?

java.lang.IllegalArgumentException: Failed to initialize OMX.qcom.video.encoder.avc, error 0xfffffffe

代码报错,解析不了格式

java.lang.IllegalArgumentException: Failed to initialize OMX.qcom.video.encoder.avc, error 0xfffffffe
at android.media.MediaCodec.native_setup(Native Method)
at android.media.MediaCodec.(MediaCodec.java:1776)
at android.media.MediaCodec.createByCodecName(MediaCodec.java:1757)
at net.yrom.screenrecorder.BaseEncoder.createEncoder(BaseEncoder.java:112)
at net.yrom.screenrecorder.BaseEncoder.prepare(BaseEncoder.java:80)
at net.yrom.screenrecorder.ScreenRecorder.prepareVideoEncoder(ScreenRecorder.java:402)
at net.yrom.screenrecorder.ScreenRecorder.record(ScreenRecorder.java:202)
at net.yrom.screenrecorder.ScreenRecorder.access$000(ScreenRecorder.java:42)
at net.yrom.screenrecorder.ScreenRecorder$CallbackHandler.handleMessage(ScreenRecorder.java:150)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:185)
at android.os.HandlerThread.run(HandlerThread.java:61)

Request (init) MediaProjection only once

This project always trying to call intent and set MediaProjection when you start recording

I don't think it's a good algorithm, please make call to intent only once and then just reuse the same instance of MediaProjection

    private void release() {
        /*if (mMediaProjection != null) {
            mMediaProjection.unregisterCallback(mProjectionCallback);
        }*/
        if (mVirtualDisplay != null) {
            mVirtualDisplay.release();
            mVirtualDisplay = null;
        }

        mVideoOutputFormat = mAudioOutputFormat = null;
        mVideoTrackIndex = mAudioTrackIndex = INVALID_INDEX;
        mMuxerStarted = false;

        if (mWorker != null) {
            mWorker.quitSafely();
            mWorker = null;
        }
        if (mVideoEncoder != null) {
            mVideoEncoder.release();
            mVideoEncoder = null;
        }
        if (mAudioEncoder != null) {
            mAudioEncoder.release();
            mAudioEncoder = null;
        }

        /*if (mMediaProjection != null) {
            mMediaProjection.stop();
            mMediaProjection = null;
        }*/
        if (mMuxer != null) {
            try {
                mMuxer.stop();
                mMuxer.release();
            } catch (Exception e) {
                // ignored
            }
            mMuxer = null;
        }
        mHandler = null;
    }

ScreenRecorder录屏屏幕旋转问题

大神,能留个联系方式嘛? 有个关于录制时屏幕旋转,录制后的视频上下或左右黑边,就是没有全屏的问题,而百度的录屏App有个横竖屏设置自动就可以全屏录制的功能,希望大佬能帮忙界面,可以有偿解决,多谢

Media Projection error

Media projection requires a foreground service of type serviceinfo.

Getting this error when try to run the app. ANY IDEA?????

你好,我从VideoEncoder获取的ByteBuffer可以转成yuv格式的么

我的目的是,通过这种方式,实现视频会议中,发送录屏辅流,而不是保存到本地MP4;
我应用的框架是webrtc的,涉及到很多的格式转换,但我获取的ByteBuffer不懂如何转换成对应Frame的构造函数参数,最终是要变成I420格式的;
之所以需要选用您的思路,是因为您提供了帧数切换和分辨率的切换,这个很关键;

onRecording 回调时间有交错

你好 感谢你贡献的代码。发现录制进度回调的实现有点小瑕疵:

private void writeSampleData(int track, MediaCodec.BufferInfo buffer, ByteBuffer encodedData) {
...
if (!eos && mCallback != null) {
      mCallback.onRecording(buffer.presentationTimeUs);
}
...
}

也就是说在写入音频和视频数据都会导致回调,音视和视频各自的时间是线性递增,但是一起回调就有可能有时间交错

Screen Recording isn't saved anywhere on the device

Expected behavior

When you record something on your screen using screen recording apps, you are able to watch those videos as they are saved on your device.

Actual behavior

While the screen recorder shows that it is recording a video but in reality there is no way to watch that video.
It is not saved anywhere on the device as there is no path for saving the video.

How to reproduce

  • Simply start recording on screen recorder and after the recording is finished you won't be able to locate the video.
  • Browser: screen recorder v2.4
  • Operating system: Android 6.0.1

Recording Of The Bug

Now I cannot record a gif or video to show the above bug so let me show a picture 

Screenshot_2018-02-28-14-46-48-421_net.yrom.screenrecorder.demo.png

As can be seen from the above picture that there is no path to save your recorded videos.



Posted on Utopian.io - Rewarding Open Source Contributors

画质太模糊

在华为M3 平板12001920分辨率上,只能录制1280720的大小,即使将所有的视频参数调到最高还是很模糊,但是用自己写的代码录制1080*1920却很清晰。

崩溃,错误信息如下

E: hongxu transact start
E: hongxu transact end
E: setParameter(1:google.h264.encoder, ??(0x7f000022)) ERROR: UnsupportedIndex(0x8000101a)
E: getParameter(1:google.h264.encoder, ??(0x7f000040)) ERROR: UnsupportedIndex(0x8000101a)
E: getParameter(1:google.h264.encoder, ??(0x7f200406)) ERROR: UnsupportedIndex(0x8000101a)
E: Video frame size 1920x1080 must be a multiple of 16
Failed to initialized encoder params
E: [OMX.google.h264.encoder] ERROR(0x80001001)
signalError(omxError 0x80001001, internalError -2147483648)
E: Codec reported err 0x80001001, actionCode 0, while in state 6
E: Justin. gLoadComplete = true.....
E: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000008
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Meizu/meizu_mx5/mx5:5.1/LMY47I/1532418776:user/release-keys'
Revision: '22355'
pid: 2513, tid: 2734, name: MediaCodec_loop >>> com.berui.firsthouse:arProcess <<<
r0 cde5fb94 r1 00000001 r2 00000000 r3 00000000
r4 cde5fbac r5 cde5fb94 r6 cde5fc20 r7 d0c03828
r8 cde5fc20 r9 00000000 sl 00000000 fp 00000016
ip f5ef4ac0 sp cde5fb60 lr f5ee9657 pc f5ee9656 cpsr dc379c90
backtrace:
E: VideoEncoder ran into an error!
android.media.MediaCodec$CodecException: Error 0x80001001
E: GraphicBufferSource queueBuffer: BufferQueue has been abandoned
E: #00 pc 0000d656 /system/lib/libstagefright_foundation.so (android::AMessage::debugString(int) const+29)
#1 pc 0000d869 /system/lib/libstagefright_foundation.so (android::AMessage::debugString(int) const+560)
#2 pc 000c8afd /system/lib/libstagefright.so (android::MediaCodec::onMessageReceived(android::spandroid::AMessage const&)+3904)
#3 pc 0000cd89 /system/lib/libstagefright_foundation.so (android::ALooperRoster::deliverMessage(android::spandroid::AMessage const&)+164)
#4 pc 0000c6f1 /system/lib/libstagefright_foundation.so (android::ALooper::loop()+216)
#5 pc 0001093f /system/lib/libutils.so (android::Thread::_threadLoop(void*)+110)
#6 pc 00063475 /system/lib/libandroid_runtime.so (android::AndroidRuntime::javaThreadShell(void*)+72)
#7 pc 000170a3 /system/lib/libc.so (__pthread_start(void*)+30)
#8 pc 0001510f /system/lib/libc.so (__start_thread+6)
A: * Assertion: should not be reached at mini.c:2215

这是魅族手机的错误,三星也会出现

video can't be play

this demo create the video but when is play give the message this video can't be played in lolipop device please give a solution .

录屏合并

你好 我想询问一下 关于录屏可以暂停之后再录制的话合并视频吗?

问一个问题

点击开始录屏之后 会返回桌面 有没有办法让他不返回桌面

怎样让输出的字节流更小

想保证一定的清晰度 然后网络传输给另一端播放 但是通过无线传输 传输速率太高.每帧都发送的话 差不多2Mbps 请问有什么建议吗

部分机型crash

Fatal Exception: java.lang.IllegalStateException
at android.media.MediaCodec.native_queueInputBuffer(MediaCodec.java)
at android.media.MediaCodec.queueInputBuffer(MediaCodec.java:2178)
at net.yrom.screenrecorder.BaseEncoder.setCallback(BaseEncoder.java)
at net.yrom.screenrecorder.MicRecorder.release(MicRecorder.java)
at net.yrom.screenrecorder.MicRecorder.setCallback(MicRecorder.java)
at net.yrom.screenrecorder.MicRecorder$RecordHandler.handleMessage(MicRecorder.java)
at android.os.Handler.dispatchMessage(Handler.java:111)
at android.os.Looper.loop(Looper.java:207)
at android.os.HandlerThread.run(HandlerThread.java:61)

录屏开头画屏

在有些手机上会出现录屏花屏,该怎么解决,一般会手机配置比较低的出现频率比较高,但是高配置的也会偶尔出现

小米9录制Crash

OS Version: 9_28
Vendor: Xiaomi
Model: MI 9
CPU ABI: armeabi-v7a

java.lang.IllegalStateException: writeSampleData returned an error
at android.media.MediaMuxer.nativeWriteSampleData(Native Method)
at android.media.MediaMuxer.writeSampleData(MediaMuxer.java:682)
at com.wl.screenrecorder.ScreenRecorder.writeSampleData(ScreenRecorder.java:287)
at com.wl.screenrecorder.ScreenRecorder.signalEndOfStream(ScreenRecorder.java:176)
at com.wlscreenrecorder.ScreenRecorder.access$300(ScreenRecorder.java:42)

No way to stop ongoing recording

Expected behavior

After starting the recording we should be able to stop it somewhere.

Actual behavior

I recently installed screen recorder app and started a recording and the app did start and while I was done recording, I wanted to finish it so I started looking for stop option but to my surprise I didn't find any.
How are we supposed to record something if we can't stop the recording.

How to reproduce

  • Open screenrecorder and start recording
  • You won't be able to stop recording.
    (Clear the data or uninstall the app if you are not able to reproduce the bug).
  • Browser: Screen Recorder v2.4
  • Operating system: Android 6.0.1

Recording Of The Bug

https://youtu.be/OkXLh2rdShc



Posted on Utopian.io - Rewarding Open Source Contributors

Screen Recorder crashes when start recorder is selected

Expected behavior

App should be able to capture screen activities when start recorder is selected or launched.

Actual behavior

Application crashes and locks device screen when start recorder is selected or launched.

How to reproduce

Download Screen Recorder (v 2.4) from play store here, launch it, select without audio then start recorder.

  • Operating system: Android Version 7.0
  • Device used: Tecno Boom J8

Recording Of The Bug

https://youtu.be/n67XLheeJLU



Posted on Utopian.io - Rewarding Open Source Contributors

为什么我两个手机点录制都闪退啊

运行后不能选resolution bitrate等,点录制后闪退。
12-21 16:33:44.388 32318-32318/? I/art: Late-enabling -Xcheck:jni
12-21 16:33:44.467 32318-32318/net.yrom.screenrecorder.demo W/System: ClassLoader referenced unknown path: /data/app/net.yrom.screenrecorder.demo-2/lib/arm
12-21 16:33:44.582 32318-32356/net.yrom.screenrecorder.demo D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
12-21 16:33:44.615 32318-32356/net.yrom.screenrecorder.demo I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
12-21 16:33:44.619 32318-32356/net.yrom.screenrecorder.demo I/OpenGLRenderer: Initialized EGL, version 1.4
12-21 16:33:44.630 32318-32355/net.yrom.screenrecorder.demo W/VideoCapabilities: Unrecognized profile 2130706433 for video/avc
12-21 16:33:44.674 32318-32355/net.yrom.screenrecorder.demo I/VideoCapabilities: Unsupported profile 4 for video/mp4v-es
12-21 16:33:44.677 32318-32355/net.yrom.screenrecorder.demo W/VideoCapabilities: Unrecognized profile 2130706433 for video/avc
12-21 16:33:44.699 32318-32318/net.yrom.screenrecorder.demo W/VideoCapabilities: Unrecognized profile 2130706433 for video/avc
12-21 16:33:44.705 32318-32318/net.yrom.screenrecorder.demo I/@@@: Encoder 'OMX.qcom.video.encoder.avc'
supported : [video/avc]
Video capabilities:
Widths: [96, 3840]
Heights: [64, 2160]
Frame Rates: [0, 960]
Bitrate: [1, 100000000]
Profile-levels:
AVCProfileBaseline-AVCLevel52
AVCProfileMain-AVCLevel52
AVCProfileHigh-AVCLevel52
2130706433-AVCLevel52
Color-formats:
0x7fa30c04
COLOR_FormatSurface
COLOR_FormatYUV420Flexible
COLOR_FormatYUV420SemiPlanar
12-21 16:33:44.707 32318-32318/net.yrom.screenrecorder.demo I/@@@: Encoder 'OMX.google.h264.encoder'
supported : [video/avc]
Video capabilities:
Widths: [16, 1920]
Heights: [16, 1088]
Frame Rates: [0, 960]
Bitrate: [1, 12000000]
Profile-levels:
AVCProfileBaseline-AVCLevel1
AVCProfileBaseline-AVCLevel1b
AVCProfileBaseline-AVCLevel11
AVCProfileBaseline-AVCLevel12
AVCProfileBaseline-AVCLevel13
AVCProfileBaseline-AVCLevel2
AVCProfileBaseline-AVCLevel21
AVCProfileBaseline-AVCLevel22
AVCProfileBaseline-AVCLevel3
AVCProfileBaseline-AVCLevel31
AVCProfileBaseline-AVCLevel32
AVCProfileBaseline-AVCLevel4
AVCProfileBaseline-AVCLevel41
AVCProfileMain-AVCLevel1
AVCProfileMain-AVCLevel1b
AVCProfileMain-AVCLevel11
AVCProfileMain-AVCLevel12
AVCProfileMain-AVCLevel13
AVCProfileMain-AVCLevel2
AVCProfileMain-AVCLevel21
AVCProfileMain-AVCLevel22
AVCProfileMain-AVCLevel3
AVCProfileMain-AVCLevel31
AVCProfileMain-AVCLevel32
AVCProfileMain-AVCLevel4
AVCProfileMain-AVCLevel41
Color-formats:
COLOR_FormatYUV420Flexible
COLOR_FormatYUV420Planar
COLOR_FormatYUV420SemiPlanar
COLOR_FormatSurface
12-21 16:33:44.713 32318-32318/net.yrom.screenrecorder.demo I/@@@: Encoder 'OMX.google.aac.encoder'
supported : [audio/mp4a-latm]
Audio capabilities:
Sample Rates: [8000, 11025, 12000, 16000, 22050, 24000, 32000, 44100, 48000]
Bit Rates: [8000, 510000]
Max channels: 6
12-21 16:36:05.031 32318-32318/net.yrom.screenrecorder.demo D/AndroidRuntime: Shutting down VM

                                                                          --------- beginning of crash

12-21 16:36:05.033 32318-32318/net.yrom.screenrecorder.demo E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.yrom.screenrecorder.demo, PID: 32318
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {net.yrom.screenrecorder.demo/net.yrom.screenrecorder.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:3699)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3742)
at android.app.ActivityThread.-wrap16(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference
at net.yrom.screenrecorder.MainActivity.getSelectedWithHeight(MainActivity.java:669)
at net.yrom.screenrecorder.MainActivity.createVideoConfig(MainActivity.java:229)
at net.yrom.screenrecorder.MainActivity.onActivityResult(MainActivity.java:144)
at android.app.Activity.dispatchActivityResult(Activity.java:6456)
at android.app.ActivityThread.deliverResults(ActivityThread.java:3695)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:3742) 
at android.app.ActivityThread.-wrap16(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:5417) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

Crashed after change targetSdkVersion to 29

Logcat:
2019-07-30 15:04:57.215 909-3862/? E/InputDispatcher: Window handle Window{7faca60 u0 Sys2003:com.android.systemui/com.android.systemui.media.MediaProjectionPermissionActivity} has no registered input channel
2019-07-30 15:04:57.233 28983-28983/? D/AndroidRuntime: Shutting down VM
2019-07-30 15:04:57.241 28983-28983/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.yrom.screenrecorder.demo, PID: 28983
java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {net.yrom.screenrecorder.demo/net.yrom.screenrecorder.MainActivity}: java.lang.SecurityException: Media projections require a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
at android.app.ActivityThread.deliverResults(ActivityThread.java:4843)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4884)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7343)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:933)
Caused by: java.lang.SecurityException: Media projections require a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
at android.os.Parcel.createException(Parcel.java:2071)
at android.os.Parcel.readException(Parcel.java:2039)
at android.os.Parcel.readException(Parcel.java:1987)
at android.media.projection.IMediaProjection$Stub$Proxy.start(IMediaProjection.java:231)
at android.media.projection.MediaProjection.(MediaProjection.java:58)
at android.media.projection.MediaProjectionManager.getMediaProjection(MediaProjectionManager.java:104)
at net.yrom.screenrecorder.MainActivity.onActivityResult(MainActivity.java:148)
at android.app.Activity.dispatchActivityResult(Activity.java:8110)
at android.app.ActivityThread.deliverResults(ActivityThread.java:4836)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:4884) 
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:214) 
at android.app.ActivityThread.main(ActivityThread.java:7343) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:933) 
Caused by: android.os.RemoteException: Remote stack trace:
at com.android.server.media.projection.MediaProjectionManagerService$MediaProjection.start(MediaProjectionManagerService.java:476)
at android.media.projection.IMediaProjection$Stub.onTransact(IMediaProjection.java:135)
at android.os.Binder.execTransactInternal(Binder.java:1021)
at android.os.Binder.execTransact(Binder.java:994)

Failed to stop the muxer (timestamps problem?)

Whenever i try to run this code on samsung cynogen 12.1 (5.1 lollipop) or on the emulator i always get this exception which seems to be cased by some problems with the timestamps:
E/MPEG4Writer﹕ timestampUs 126037 < lastTimestampUs 266235 for Video track

04-17 11:43:28.597    6475-6502/net.yrom.screenrecorder I/ScreenRecorder﹕ dequeue output buffer index=-1
04-17 11:43:28.597    6475-6502/net.yrom.screenrecorder D/ScreenRecorder﹕ retrieving buffers time out!
04-17 11:43:28.618    6475-6502/net.yrom.screenrecorder I/ScreenRecorder﹕ dequeue output buffer index=-1
04-17 11:43:28.618    6475-6502/net.yrom.screenrecorder D/ScreenRecorder﹕ retrieving buffers time out!
04-17 11:43:28.629    6475-6502/net.yrom.screenrecorder I/ScreenRecorder﹕ dequeue output buffer index=3
04-17 11:43:28.629    6475-6502/net.yrom.screenrecorder D/ScreenRecorder﹕ got buffer, info: size=115, presentationTimeUs=9115790746, offset=0
04-17 11:43:28.630    6475-6508/net.yrom.screenrecorder E/MPEG4Writer﹕ timestampUs 126037 < lastTimestampUs 266235 for Video track
04-17 11:43:28.716    6475-6502/net.yrom.screenrecorder D/MPEG4Writer﹕ Video track stopping
04-17 11:43:28.716    6475-6502/net.yrom.screenrecorder D/MPEG4Writer﹕ Video track source stopping
04-17 11:43:28.716    6475-6502/net.yrom.screenrecorder D/MPEG4Writer﹕ Video track source stopped
04-17 11:43:28.716    6475-6502/net.yrom.screenrecorder D/MPEG4Writer﹕ Stopping writer thread
04-17 11:43:28.716    6475-6507/net.yrom.screenrecorder D/MPEG4Writer﹕ 0 chunks are written in the last batch
04-17 11:43:28.717    6475-6502/net.yrom.screenrecorder D/MPEG4Writer﹕ Writer thread stopped
04-17 11:43:28.720    6475-6502/net.yrom.screenrecorder E/AndroidRuntime﹕ FATAL EXCEPTION: ScreenRecorder
    Process: net.yrom.screenrecorder, PID: 6475
    java.lang.IllegalStateException: Failed to stop the muxer
            at android.media.MediaMuxer.nativeStop(Native Method)
            at android.media.MediaMuxer.stop(MediaMuxer.java:225)
            at net.yrom.screenrecorder.ScreenRecorder.release(ScreenRecorder.java:200)
            at net.yrom.screenrecorder.ScreenRecorder.run(ScreenRecorder.java:100)

编码清晰度

请问关于视频清晰度的问题,是编码导致还是解码导致的?是否使用软编码对视频的清晰度要更好一些

writeSampleData returned an error

java.lang.IllegalStateException: writeSampleData returned an error
at android.media.MediaMuxer.nativeWriteSampleData(Native Method)
at android.media.MediaMuxer.writeSampleData(MediaMuxer.java:714)
at com.hisense.screenrecord.recorder.ScreenRecorder.writeSampleData(ScreenRecorder.java:446)
at com.hisense.screenrecord.recorder.ScreenRecorder.muxVideo(ScreenRecorder.java:290)
at com.hisense.screenrecord.recorder.ScreenRecorder.access$500(ScreenRecorder.java:59)
at com.hisense.screenrecord.recorder.ScreenRecorder$2.onOutputBufferAvailable(ScreenRecorder.java:541)
at com.hisense.screenrecord.recorder.BaseEncoder$1.onOutputBufferAvailable(BaseEncoder.java:197)
at android.media.MediaCodec$EventHandler.handleCallback(MediaCodec.java:1706)
at android.media.MediaCodec$EventHandler.handleMessage(MediaCodec.java:1653)
at android.os.Handler.dispatchMessage(Handler.java:112)
at android.os.Looper.loop(Looper.java:216)
at android.os.HandlerThread.run(HandlerThread.java:65)

华为部分手机崩溃

mate20 p20 在内的大多数手机不能录制,报错主要在 prepareEncoder()方法内的mEncoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
主要错误为 illegalArgumentException ,不好意思我没有真机调试,因为有人反映华为手机不兼容所以我用的错误日志收集到的错误只有这些。

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.