Search Unity

NatCorder - Video Recording API

Discussion in 'Assets and Asset Store' started by Lanre, Nov 18, 2017.

  1. VladK02

    VladK02

    Joined:
    May 11, 2021
    Posts:
    11
    ReplayCam works fine for me. Actually, I fixed my problem. I guess the problem is that sometimes the screen's width and height are odd. So, I have tried to test my code with odd values and everything crashed in the same way. So, I reduce screen parameters to even numbers and my code worked fine.
     
  2. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Sounds good.
     
  3. VladK02

    VladK02

    Joined:
    May 11, 2021
    Posts:
    11
    Lanre, when I am trying to record video with sound the audio late for about 1 second. It's also happened in the ReplayCam example. Could you please tell me how it could be fixed?
     
  4. lanzhoulanshi

    lanzhoulanshi

    Joined:
    Jul 15, 2021
    Posts:
    2
    Hi!
    To record video only, The MP4Recorder is run right.To record video with audio,cannot be recorded, the resulting file size is 0 KB or 15KB.
    upload_2021-7-15_9-57-3.png
     
  5. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    This would be coming from Unity's Microphone API. I don't recommend using it in production. Instead, use NatDevice which streams microphone audio with very little latency.
     
  6. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Can you share more information about your setup? What happens when you record with a `WAVRecorder`? Does the output wav file contain audio? What are the values of `sampleRate` and `channelCount` at runtime? You seem to want to commit an entire audio clip while recording, but this doesn't seem to be correct. The recorder, especially on Windows, expects you to commit video and audio frames in tandem. And audio frames are usually small, like 1024-2048 samples.
     
  7. lanzhoulanshi

    lanzhoulanshi

    Joined:
    Jul 15, 2021
    Posts:
    2
    Thanks. I want to record a remote video .To record with a `WAVRecorder` is run right.To record video only, The MP4Recorder is run right.To record video with audio,cannot be recorded.
    Code (CSharp):
    1.         public static void StartRecord(int width,int height,int frameRate,int sampleRate, int channelCount)
    2.         {
    3.             clock = new RealtimeClock();
    4.             AudioListener audioListener = Camera.main.GetComponent<AudioListener>();
    5.             recorder = new MP4Recorder(width, height, frameRate, 100000, 1);
    6.             //wavRecorder = new WAVRecorder(100000, 1);
    7.          
    8.             audioInput = new AudioInput(recorder, clock, audioListener);
    9.             isRecord = true;
    10.         }
    11.         public static void AddImage(Texture2D texture)
    12.         {
    13.             if (isRecord)
    14.             {
    15.                 pixelBuffer = texture.GetPixels32();
    16.                 recorder.CommitFrame(pixelBuffer, clock.timestamp);
    17.             }
    18.         }
    19.  
    20.         public static async void StopRecord()
    21.         {
    22.             path = await recorder.FinishWriting();
    23.         }
    24.         public static void Stop()
    25.         {
    26.             isRecord = false;
    27.             audioInput.Dispose();
    28.             StopRecord();
    29.         }
     
  8. Blarp

    Blarp

    Joined:
    May 13, 2014
    Posts:
    269
    @Lanre fresh import, not sure what is making this happen.
    import.png
     
  9. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    The first thing to note is that your sample rate (100_000) looks incorrect. Beyond that, when recording an MP4, you will need to record while you stream. This means recording small packets of 1024-2048 samples as you record video frames. Recording one massive buffer with all the samples will not work.
     
  10. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Can you delete and reimport NatCorder from your project? It apparently can't find the classes that come with NatCorder.
     
  11. Blarp

    Blarp

    Joined:
    May 13, 2014
    Posts:
    269
    @Lanre Create a brand new URP project. Set build to WebGL in unity 2021.1.12f1 (or later if exists), import natcorder, build.

    It'll reproduce this error.
     
  12. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Ah, you're trying to compile for WebGL. NatCorder's assembly is only enabled for iOS, Android, macOS, and Windows. NatCorder doesn't support WebGL.
     
  13. GavinChen

    GavinChen

    Joined:
    Aug 14, 2018
    Posts:
    7
    Refresh the information

    window64
    unity 2020.3.5f1
    NatCorder Version 1.8.1

    1. Record fail because the path contains Chinese
    => Temporarily rewrite the Mp4Recorder.cs script to fix
    2. "NatCorder" error message appears when start record
    =>At present, the following two reasons have been found to appear this message, are there other possibilities besides this?
    (Currently there are 16 users, two of them are 64-bit and have .dll file, but this error message appears)
    -Use window32 bit
    -There is no NatCorder.dll in the plugin folder
     

    Attached Files:

    • aaa.png
      aaa.png
      File size:
      171.2 KB
      Views:
      300
  14. pjaimin

    pjaimin

    Joined:
    Nov 3, 2018
    Posts:
    13
    Hey @Lanre
    I am using Natcorder for recording camera on opengl but when I startRecording my fps is drops and also video renders at 15FPS. is there any solution ?? What I am doing wrong??
     
  15. Ivegotalotofquestions

    Ivegotalotofquestions

    Joined:
    Feb 18, 2021
    Posts:
    6
    Hi Lanre,

    Is there a way to control the Camera Input frame rate of the rendered video to be at 24?
    I try to put the value in the camera input but the resulting video is not at 24 fps.

    I saw that I am supposed to use the frameSkip from the document, but I am not sure how to use it since different devices.
    Could you provide some suggestions?
     
  16. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    I'm working on this now.
     
  17. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    This happens because Unity+OpenGL does not support asynchronous pixel buffer readbacks from the GPU. You can learn more on the documentation. The fix is to use Vulkan or DX11/DX12 where async readbacks are supported. If you are on Android, you can use NatCorder Performance Extensions (NCPX).
     
  18. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    For the MP4 and HEVC recorders, the video frame rate is controlled entirely by the timestamps. So you can use a fixed interval clock to generate a constant frame rate video.
     
  19. vm_unity336

    vm_unity336

    Joined:
    Dec 22, 2020
    Posts:
    1
    Hello, Lanre,
    Is it possible to get an event that the recorder has been created (initialized)? there was a problem when you often click on the video recording button, the application crashes. The same thing happens in the examples (ReplayCam)
     
  20. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Hey there, you shouldn't get a crash from creating too many recorders. Can you share the crash logs? The actual cause of the crash is likely something different.
     
  21. pjaimin

    pjaimin

    Joined:
    Nov 3, 2018
    Posts:
    13
    Hey @Lanre so as you mention in this post. I am recording video with camera input which is recorded at 40FPS but I want to record it at 30FPS, So I use FixedIntervalClock insted of RealTimeClock but the issue is My 30 sec video recorded as 1 minute and 30 sec and framrate is 15. Can you tell me what's going wrong here. by the way I use like this

    var fixedClock = new FixedIntervalClock(30);
     
  22. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Can you share one of the recordings along with your recording code? Using a fixed interval clock should always fix the recording frame rate, although it might not visually look to be playing at that frame rate because that is controlled by the passage of time in the actual frames.
     
  23. AJTiger

    AJTiger

    Joined:
    Jul 29, 2021
    Posts:
    4
    Unity Version 2020.1.0
    I'm Using NatCorder(1.7.3) for recording AR camera rendering.

    I'm having performance because the fps goes from around 30 fps to around 20 fps when start recording.
    This is an AR foundation app.

    Guide me asapo_O
     
  24. Qaddoumi-Adel

    Qaddoumi-Adel

    Joined:
    Sep 22, 2015
    Posts:
    7
    I'm trying to use NatCorder with ARFoundation (ARCameraBackground) and NatDevice's Microphone. However, it gives me this error when running on iOS (it works in the editor).

    AudioDevice Built-In Microphone failed to start recording with error: Error Domain=com.apple.coreaudio.avfaudio Code=-10851 “(null)” UserInfo={failed call=err = AUGraphParser::InitializeActiveNodesInInputChain(ThisGraph, *GetInputNode())}

    This is the code used for recording. The constructor passes the main camera.

    Code (CSharp):
    1. using System;
    2. using NatSuite.Recorders;
    3. using NatSuite.Recorders.Clocks;
    4. using NatSuite.Recorders.Inputs;
    5. using NatSuite.Devices;
    6. using UnityEngine;
    7.  
    8.  
    9. public class Media {
    10.  
    11.     private int _width = 1080;
    12.     private int _height = 1920;
    13.     private int _frameRate = 30;
    14.     private int _audioBitRate = 96000;
    15.  
    16.     private Camera _camera;
    17.     private AudioDevice _microphone;
    18.  
    19.     private RealtimeClock _clock;
    20.     private MP4Recorder _recorder;
    21.     private CameraInput _cameraInput;
    22.  
    23.     public Media(Camera camera) {
    24.         _camera = camera;
    25.         MediaDeviceQuery query = new MediaDeviceQuery(MediaDeviceCriteria.AudioDevice);
    26.         _microphone = query.current as AudioDevice;
    27.     }
    28.  
    29.     public void StartRecordVideo() {
    30.         _clock = new RealtimeClock();
    31.         _recorder = new MP4Recorder(_width, _height, _frameRate, _microphone.sampleRate, _microphone.channelCount, audioBitRate: _audioBitRate);
    32.         _cameraInput = new CameraInput(_recorder, _clock, _camera);
    33.         _microphone.StartRunning((sampleBuffer, timestamp) => {
    34.             _recorder.CommitSamples(sampleBuffer, _clock.timestamp);
    35.         });
    36.     }
    37.  
    38.     public async void FinishRecordVideo(Action<string> callback) {
    39.         _microphone.StopRunning();
    40.         _cameraInput.Dispose();
    41.         string _videoPath = await _recorder.FinishWriting();
    42.         callback.Invoke(_videoPath);
    43.     }
    44. }
    Any help would be appreciated :)
     
  25. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    This happens because ARFoundation on Android requires OpenGL ES, and Unity doesn't support async GPU readbacks on OpenGL. Read more here. You can use the `GLESTextureInput` that is a part of NatCorder Performance Extensions. Also, you'll need NatCorder 1.8.1.
     
  26. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Make sure that you enable 'Prepare iOS for Recording' in Player Settings.
     
  27. Qaddoumi-Adel

    Qaddoumi-Adel

    Joined:
    Sep 22, 2015
    Posts:
    7
    This solved the issue, thanks!
     
    Lanre likes this.
  28. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Great!
     
  29. tyler-o3h

    tyler-o3h

    Joined:
    Apr 2, 2019
    Posts:
    1
    Hi, I've run into an issue where NatCorder is requesting camera permission on ios when I create a new mp4Recorder. Is there something internal that's requesting permissions?
     
  30. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    NatCorder doesn't request or need any permissions. Check that there aren't any uses of WebCamTexture in your project (you might need to delete the ReplayCam example that comes with NatCorder).
     
  31. Archi_16

    Archi_16

    Joined:
    Apr 7, 2017
    Posts:
    87
    Hey there, I'm getting reports on Firebase, the apps crash. This happens when users start recording.
    How can I fix it?
    the name of the crash is:
    tgkill line 8

    Caused by java.lang.Error
    *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Version '2020.3.15f2 (6cf78cb77498)', Build type 'Release', Scripting Backend 'il2cpp', CPU 'arm64-v8a' Build fingerprint: 'xiaomi/mido/mido:7.0/NRD90M/V11.0.2.0.NCFMIXM:user/release-keys' Revision: '0' ABI: 'arm64' Timestamp: 2021-08-15 12:45:21+0530 pid: 7994, tid: 9039, name: MP4Recorder Vid >>> com.***.***<<< uid: 10171 signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr -------- x0 0000000000000000 x1 000000000000234f x2 0000000000000006 x3 0000000000000008 x4 0000746f6e6e6163 x5 0000000000000000 x6 0000007f79b51000 x7 0000000000000000 x8 0000000000000083 x9 ffffffffffffffdf x10 0000000000000000 x11 0000000000000001 x12 ffffffffffffffff x13 0000000000000000 x14 0000000000000000 x15 0008ecd9126ee456 x16 0000007f78067ed0 x17 0000007f78011510 x18 0000007f756aeae0 x19 0000007e1bba54f8 x20 0000000000000006 x21 0000007e1bba5450 x22 000000000000006e x23 344529dd338dfbec x24 0000007e1872d600 x25 344529dd338dfbec x26 0000007e14b39c98 x27 344529dd338dfbec x28 0000000000000001 x29 0000007e1bba37f0 sp 0000007e1bba37d0 lr 0000007f7800e9a0 pc 0000007f78011518 backtrace: #00 pc 000000000006b518 /system/lib64/libc.so (tgkill+8) (BuildId: 551b461edf655728e54c941e2a097b54) #01 pc 000000000006899c /system/lib64/libc.so (pthread_kill+64) (BuildId: 551b461edf655728e54c941e2a097b54) #02 pc 0000000000023ee8 /system/lib64/libc.so (raise+24) (BuildId: 551b461edf655728e54c941e2a097b54) #03 pc 000000000001c96c /system/lib64/libc.so (abort+52) (BuildId: 551b461edf655728e54c941e2a097b54) #04 pc 0000000000010d94 /system/lib64/libcutils.so (__android_log_bwrite) (BuildId: 37d8b67953c1af72041cab13f0b5e48c) #05 pc 0000000000113af0 /system/lib64/libstagefright.so (android::MPEG4Writer::Track::writeMp4aEsdsBox()+904) (BuildId: aff0d4a0f60420af1d34d7e1859d794b) #06 pc 00000000001124c4 /system/lib64/libstagefright.so (android::MPEG4Writer::Track::write<truncated: 1009 chars>


    libc.tgkill (tgkill:8)
    libc.pthread_kill(pthread_kill:64)
    libc.raiselibc.abort(raise:24)
    libc.abort(abort:52)
    libcutils.__android_log_bwrite (__android_log_bwrite)
    libstagefright.android::MPEG4Writer::Track::writeMp4aEsdsBox() (writeMp4aEsdsBox:904)
    libstagefright.android::MPEG4Writer::Track::writeAudioFourCCBox() (writeAudioFourCCBox:588)
    libstagefright.android::MPEG4Writer::Track::writeStblBox(bool) (writeStblBox:140)
    libstagefright.android::MPEG4Writer::Track::writeTrackHeader(bool) (writeTrackHeader:340)
    libstagefright.android::MPEG4Writer::writeMoovBox(long) (writeMoovBox:152)
    libstagefright.android::MPEG4Writer::reset() (reset:492)
    libstagefright.android::MediaMuxer::stop() (stop:128)
    libmedia_jni.0x42c80
    boot-framework.0x1ff8864
     
  32. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Can you share your recording code? This looks like an internal error in the Android media libraries, not a NatCorder error.
     
  33. Archi_16

    Archi_16

    Joined:
    Apr 7, 2017
    Posts:
    87
    Sure, will do asap.
    What i noticed, all crashes came from Android 7 version
     
    Lanre likes this.
  34. musicdeveloper

    musicdeveloper

    Joined:
    Oct 16, 2019
    Posts:
    68
    Hello Yusuf,
    I recently updated to Unity 2020.3.16f1 from Unity 2019.

    Since the update, NatCorder appears to be broken on iOS, testing on iPhone X.

    When I try to create an MP4Recorder exactly as I have done in the app for 2 years, I get an ambiguous bad access error:
    EXC_BAD_ACCESS (code=1, address=0x0)

    Screenshot of XCode on crash - may be slightly more informative:
    Screen Shot 2021-08-19 at 9.01.39 AM.png


    I searched the logs to see if something else could be going wrong with loading the framework, and I found the following earlier in the iOS app log:
    objc[1076]: Class NCGIFRecorder is implemented in both /private/var/containers/Bundle/Application/B9174930-1D9C-4BE6-B873-A33E474805E8/SeeMusic.app/Frameworks/NatCorder.framework/NatCorder (0x100695938) and /private/var/containers/Bundle/Application/B9174930-1D9C-4BE6-B873-A33E474805E8/SeeMusic.app/Frameworks/UnityFramework.framework/UnityFramework (0x104350910). One of the two will be used. Which one is undefined.

    objc[1076]: Class NCHEVCRecorder is implemented in both /private/var/containers/Bundle/Application/B9174930-1D9C-4BE6-B873-A33E474805E8/SeeMusic.app/Frameworks/NatCorder.framework/NatCorder (0x100695898) and /private/var/containers/Bundle/Application/B9174930-1D9C-4BE6-B873-A33E474805E8/SeeMusic.app/Frameworks/UnityFramework.framework/UnityFramework (0x104350960). One of the two will be used. Which one is undefined.

    objc[1076]: Class NCMP4Recorder is implemented in both /private/var/containers/Bundle/Application/B9174930-1D9C-4BE6-B873-A33E474805E8/SeeMusic.app/Frameworks/NatCorder.framework/NatCorder (0x1006958e8) and /private/var/containers/Bundle/Application/B9174930-1D9C-4BE6-B873-A33E474805E8/SeeMusic.app/Frameworks/UnityFramework.framework/UnityFramework (0x1043509b0). One of the two will be used. Which one is undefined.


    I'm really up against a deadline trying to get a new version released, and wasn't expecting to run into something like this at all. If you can offer any advice this week, it would be very much appreciated.

    Thank you,
    Peter
     
  35. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Hey Peter, looks like you have the old NatCorder library still present in your project. Can you do the following:
    1. Delete NatCorder from your project entirely. Any directory named NatCorder or NatSuite should be deleted.
    2. Reimport NatCorder from the Asset Store
    3. Rebuild an Xcode project from Unity, but do not append. It needs to be a clean build.
    Let me know if you still face this crash.
     
  36. sabanmete

    sabanmete

    Joined:
    Mar 20, 2020
    Posts:
    19
    Hi Lanre,
    I am using Unity 2020.1.17f1, natCorder 1.8.1
       "com.natsuite.natrender": "git+https://github.com/natsuite/NatRender",
    "com.natsuite.ncpx": "git+https://github.com/natsuite/NatCorder-Performance-Extensions"

    Added to my manifest file.
    upload_2021-8-20_12-57-43.png
    But library can't be found. Am i missing something ?
    Thank you for the performance extension btw it is exciting!
     
  37. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Hey there, can you try deleting NatCorder in your project then reimporting it? Seems like your project is missing the `ITextureInput` interface.
     
  38. Seginus

    Seginus

    Joined:
    Feb 1, 2018
    Posts:
    18
    I'm having difficulty streaming videos I've recorded with the HEVC recorder.

    A member from a partner company is saying that the 'meta' box should be a FullBox, but it isn't one here, which is causing the issue. Copying their message here:

    The issue is that we expect ‘meta’ box is a FullBox, while one in your asset is not.


    So, Origin fails to read the mp4.

    In fact, the ‘meta’ box is supposed to be a FullBox according to the spec - which contains version and flag. I'm not sure why your MP4 does not contain that.


    It's possible there is a bug in the HEVC encoder there.

    Any advice?
     
  39. musicdeveloper

    musicdeveloper

    Joined:
    Oct 16, 2019
    Posts:
    68
    Thank you! Deleting / reimporting worked. Working on iOS in 2020.3.16f1 now.
     
  40. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Perfect!
     
  41. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    NatCorder doesn't perform the encoding or muxing by itself; it delegates this work to the platform's media API's. So this would be an issue for the specific platform's implementation of the H.265 encoder.
     
  42. unity_7C47156A3A64B20452E4

    unity_7C47156A3A64B20452E4

    Joined:
    Mar 28, 2021
    Posts:
    3
    How can I compatible iOS 11 by using Unity 2019.4.8f1, NatCorder 1.8.1? @Lanre

    Exception Type: EXC_CRASH (SIGABRT)
    Exception Codes: 0x0000000000000000, 0x0000000000000000
    Exception Note: EXC_CORPSE_NOTIFY
    Termination Description: DYLD, Library not loaded: /System/Library/Frameworks/CoreServices.framework/CoreServices | Referenced from: /private/var/containers/Bundle/Application/????/xxxx.app/Frameworks/NatCorder.framework/NatCorder | Reason: image not found
    Triggered by Thread: 0
     
  43. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    NatCorder requires iOS 13+.
     
  44. robbus1st

    robbus1st

    Joined:
    Jul 23, 2013
    Posts:
    13
    hello, im use ARFoundation camera for recording, but when i swicth to other camera, recording has been stop. how can i to continue the recording?tx
     
  45. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    You can dispose the CameraInput you have and create a new one with your new game camera. Make sure to use the same recorder and clock as before.
     
  46. unity_7C47156A3A64B20452E4

    unity_7C47156A3A64B20452E4

    Joined:
    Mar 28, 2021
    Posts:
    3
    We need support iOS11,Unless don‘t crash on iOS 11 after integration.I has been bought 1.8.1. Can I get Older version like NatCorder version 1.7.1 ?
     
    Lanre likes this.
  47. robbus1st

    robbus1st

    Joined:
    Jul 23, 2013
    Posts:
    13
    i'll do this, but in android device app will crash, but an ios device recorded have freeze on last view but saved on device.
     
  48. Seginus

    Seginus

    Joined:
    Feb 1, 2018
    Posts:
    18
    I"m getting inconsistent crashes with Natcorder after updating to 1.8.1. Did a full removal of the old plugin before installing. The odd part is the timing of the crash varies. Sometimes it happens when the recorders are created, and other times is crashes when recording is finished. Other times I don't get a crash at all.

    Crash log:

    Code (CSharp):
    1.  
    2. 08-26 10:57:58.088 18887 18887 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    3. 08-26 10:57:58.088 18887 18887 F DEBUG   : Build fingerprint: 'samsung/gts4lwifixx/gts4lwifi:10/QP1A.190711.020/T830XXU5CUE2:user/release-keys'
    4. 08-26 10:57:58.088 18887 18887 F DEBUG   : Revision: '7'
    5. 08-26 10:57:58.088 18887 18887 F DEBUG   : ABI: 'arm'
    6. 08-26 10:57:58.089 18887 18887 F DEBUG   : Timestamp: 2021-08-26 10:57:58-0400
    7. 08-26 10:57:58.089 18887 18887 F DEBUG   : pid: 14466, tid: 18172, name: UnityMain  >>> com.Sciberus.ARDancing <<<
    8. 08-26 10:57:58.089 18887 18887 F DEBUG   : uid: 10524
    9. 08-26 10:57:58.089 18887 18887 F DEBUG   : signal 6 (SIGABRT), code -1 (SI_QUEUE), fault addr --------
    10. 08-26 10:57:58.089 18887 18887 F DEBUG   : Abort message: 'JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.NoClassDefFoundError: Failed resolution of: Lapi/natsuite/natrender/GLRenderContext;
    11. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void api.natsuite.natreader.FrameEnumerator2.<init>(android.media.MediaExtractor, android.media.MediaFormat, float, float) (FrameEnumerator2.java:48)
    12. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at api.natsuite.natreader.MediaEnumerator api.natsuite.natreader.MP4FrameReader.createEnumerator(float, float) (MP4FrameReader.java:55)
    13. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    14. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    15. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    16. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:103)
    17. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void android.os.Looper.loop() (Looper.java:237)
    18. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    19. 08-26 10:57:58.089 18887 18887 F DEBUG   : Caused by: java.lang.ClassNotFoundException: Didn't find class "api.natsuite.natrender.GLRenderContext" on path: DexPathList[[zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/base.apk", zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_basecontent.apk", zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_christmas.apk", zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_config.armeabi_v7a.apk", zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_core.apk", zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_testpack.apk", zip file "/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_variety.apk"],nativeLibraryDirectories=[/data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/lib/arm, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/base.apk!/lib/armeabi-v7a, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_basecontent.apk!/lib/armeabi-v7a, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_christmas.apk!/lib/armeabi-v7a, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_config.armeabi_v7a.apk!/lib/armeabi-v7a, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_core.apk!/lib/armeabi-v7a, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_testpack.apk!/lib/armeabi-v7a, /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_variety.apk!/lib/armeabi-v7a, /system/lib, /system/product/lib]]
    20. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:196)
    21. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
    22. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
    23. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void api.natsuite.natreader.FrameEnumerator2.<init>(android.media.MediaExtractor, android.media.MediaFormat, float, float) (FrameEnumerator2.java:48)
    24. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at api.natsuite.natreader.MediaEnumerator api.natsuite.natreader.MP4FrameReader.createEnumerator(float, float) (MP4FrameReader.java:55)
    25. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2)
    26. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1)
    27. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1)
    28. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:103)
    29. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void android.os.Looper.loop() (Looper.java:237)
    30. 08-26 10:57:58.089 18887 18887 F DEBUG   :   at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
    31. 08-26 10:57:58.089 18887 18887 F DEBUG   :
    32. 08-26 10:57:58.089 18887 18887 F DEBUG   :     in call to NewGlobalRef
    33. 08-26 10:57:58.089 18887 18887 F DEBUG   :     from boolean com.unity3d.player.UnityPlayer.nativeRender()'
    34. 08-26 10:57:58.089 18887 18887 F DEBUG   :     r0  00000000  r1  000046fc  r2  00000006  r3  b73fb248
    35. 08-26 10:57:58.089 18887 18887 F DEBUG   :     r4  b73fb25c  r5  b73fb240  r6  00003882  r7  0000016b
    36. 08-26 10:57:58.089 18887 18887 F DEBUG   :     r8  b73fb258  r9  b73fb248  r10 b73fb278  r11 b73fb268
    37. 08-26 10:57:58.089 18887 18887 F DEBUG   :     ip  000046fc  sp  b73fb218  lr  ea4e867b  pc  ea4e868e
    38. 08-26 10:57:58.373 18887 18887 F DEBUG   :
    39. 08-26 10:57:58.373 18887 18887 F DEBUG   : backtrace:
    40. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #00 pc 0006168e  /apex/com.android.runtime/lib/bionic/libc.so (abort+166) (BuildId: 9390bc0818e5bcd29098e706d070debe)
    41. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #01 pc 0037e609  /apex/com.android.runtime/lib/libart.so (art::Runtime::Abort(char const*)+1764) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    42. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #02 pc 000084c7  /system/lib/libbase.so (android::base::LogMessage::~LogMessage()+390) (BuildId: ff70be7d5c6951dfff6e1bdc7004b374)
    43. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #03 pc 0028c415  /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1212) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    44. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #04 pc 0028c5b1  /apex/com.android.runtime/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+64) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    45. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #05 pc 00281c65  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::ScopedCheck::AbortF(char const*, ...)+40) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    46. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #06 pc 00280b75  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::ScopedCheck::CheckPossibleHeapValue(art::ScopedObjectAccess&, char, art::(anonymous namespace)::JniValueType)+1044) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    47. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #07 pc 00280161  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::ScopedCheck::Check(art::ScopedObjectAccess&, bool, char const*, art::(anonymous namespace)::JniValueType*)+652) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    48. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #08 pc 0026c339  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::CheckJNI::FindClass(_JNIEnv*, char const*)+496) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    49. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #09 pc 008bcd57  /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_config.armeabi_v7a.apk!libunity.so (offset 0x4abd000) (NativeRuntimeException::CatchAndRethrow()+58) (BuildId: cc498ac02462b77fcd3a23fbc580ec8c7a587c87)
    50. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #10 pc 008f300d  /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/split_config.armeabi_v7a.apk!libunity.so (offset 0x4abd000) (nativeRender(_JNIEnv*, _jobject*)+32) (BuildId: cc498ac02462b77fcd3a23fbc580ec8c7a587c87)
    51. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #11 pc 000dc519  /apex/com.android.runtime/lib/libart.so (art_quick_generic_jni_trampoline+40) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    52. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #12 pc 0202e4eb  /memfd:/jit-cache (deleted) (com.unity3d.player.UnityPlayer.access$300+42)
    53. 08-26 10:57:58.373 18887 18887 F DEBUG   :       #13 pc 0202fa85  /memfd:/jit-cache (deleted) (com.unity3d.player.UnityPlayer$e$1.handleMessage+452)
    54. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #14 pc 020306ed  /memfd:/jit-cache (deleted) (android.os.Handler.dispatchMessage+108)
    55. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #15 pc 020340db  /memfd:/jit-cache (deleted) (android.os.Looper.loop+1114)
    56. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #16 pc 000d7c0f  /apex/com.android.runtime/lib/libart.so (art_quick_osr_stub+46) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    57. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #17 pc 0025b13d  /apex/com.android.runtime/lib/libart.so (art::jit::Jit::MaybeDoOnStackReplacement(art::Thread*, art::ArtMethod*, unsigned int, int, art::JValue*)+1164) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    58. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #18 pc 00435067  /apex/com.android.runtime/lib/libart.so (MterpMaybeDoOnStackReplacement+134) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    59. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #19 pc 000d73f4  /apex/com.android.runtime/lib/libart.so (MterpHelpers+244) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    60. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #20 pc 00396704  /system/framework/framework.jar (android.os.Looper.loop+1076)
    61. 08-26 10:57:58.374 18887 18887 F DEBUG   :       #21 pc 0042e9d5  /apex/com.android.runtime/lib/libart.so (MterpInvokeStatic+932) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    62. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #22 pc 000d2994  /apex/com.android.runtime/lib/libart.so (mterp_op_invoke_static+20) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    63. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #23 pc 0004c96c  [anon:dalvik-classes3.dex extracted in memory from /data/app/com.Sciberus.ARDancing-wmjaZfQVPsjpD1_RmNMM8g==/base.apk!classes3.dex] (com.unity3d.player.UnityPlayer$e.run+40)
    64. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #24 pc 001eeb79  /apex/com.android.runtime/lib/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEbb.llvm.8022219214308812646+192) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    65. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #25 pc 001f336b  /apex/com.android.runtime/lib/libart.so (art::interpreter::EnterInterpreterFromEntryPoint(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*)+126) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    66. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #26 pc 00420a9d  /apex/com.android.runtime/lib/libart.so (artQuickToInterpreterBridge+852) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    67. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #27 pc 000dc5a1  /apex/com.android.runtime/lib/libart.so (art_quick_to_interpreter_bridge+32) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    68. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #28 pc 000d7bc5  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub_internal+68) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    69. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #29 pc 00436fb5  /apex/com.android.runtime/lib/libart.so (art_quick_invoke_stub+252) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    70. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #30 pc 000dffeb  /apex/com.android.runtime/lib/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+178) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    71. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #31 pc 00377deb  /apex/com.android.runtime/lib/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+54) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    72. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #32 pc 00378b73  /apex/com.android.runtime/lib/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue const*)+306) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    73. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #33 pc 003aa1bb  /apex/com.android.runtime/lib/libart.so (art::Thread::CreateCallback(void*)+982) (BuildId: eb153f5b2c8bd4badfadf3d9cbe57d9f)
    74. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #34 pc 000abcfb  /apex/com.android.runtime/lib/bionic/libc.so (__pthread_start(void*)+20) (BuildId: 9390bc0818e5bcd29098e706d070debe)
    75. 08-26 10:57:58.375 18887 18887 F DEBUG   :       #35 pc 00062db3  /apex/com.android.runtime/lib/bionic/libc.so (__start_thread+30) (BuildId: 9390bc0818e5bcd29098e706d070debe)
     
  49. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    PM me with your invoice number and I'll share NatCorder 1.7.
     
  50. Lanre

    Lanre

    Joined:
    Dec 26, 2013
    Posts:
    3,971
    Can you share your code?