![]() ![]() Best Parental Control for iPhone & iPad.IPVanish VPN vs Private Internet Access.MediaMuxer = MediaMuxer(fileDescriptor, MediaMuxer.OutputFormat. Private const val VIDEO_FORMAT = "video/avc" Private val pendingVideoEncoderInputBufferIndices = AtomicReference>(LinkedList()) Private var trackIndex by Delegates.notNull() Private lateinit var videoFormat: MediaFormat Private val fileDescriptor: FileDescriptor, However, this approach led to crashes at the native layer and we believe it may have to do with this comment from the source code ( ) about the native writer trying to memory map the output file. We attempted to use the MediaMuxer to mux the output data to a file, but our use case requires that we encrypt the bytes of data before they are saved to disk which eliminates the possibility of using the default constructor.Īdditionally, we have attempted to use the newly added (API 26) constructor that takes a FileDescriptor instead and have that pointed to a ParcelFileDescriptor that wrapped an Encrypted Document ( ). It appears that a lot of important metadata is lost with this method, specifically presentation timestamps and frame rate data as ffmpeg has to do some guess work to mux the files.Īre there techniques for keeping these streams in sync without using MediaMuxer? The video is encoded with H.264 and the audio with AAC. ![]() This approach works, however, when attempting to stitch the files back together with FFMPEG, we notice that the two streams seem to get out of sync somewhere mid stream. As the data is output from MediaEncoder, we are encrypting and writing the contents of the byte buffer to disk. Our current implementation pipes the outputs from microphone and camera through the MediaEncoder class. We’re attempting to save video and audio from an Android device into an encrypted file. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |