deepmedia / deepmedia/Transcoder
Video returns as a 0 bytes file for high quality videos, specifically with videos with HEVC codec
- Dominant language
- Java
- Stars
- 864
- Forks
- 181
- PR merge metrics
- No merged PRs in 30d
Description
I was doing some tests with this library in some videos recorded by a Samsung device and it is not working well. When I call the transcode method I got this error after a couple of seconds:
```
Java.Lang.IllegalArgumentException: Exception of type 'Java.Lang.IllegalArgumentException' was thrown.
--- End of managed Java.Lang.IllegalArgumentException stack trace ---
java.lang.IllegalArgumentException
at android.media.MediaCodec.native_configure(Native Method)
at android.media.MediaCodec.configure(MediaCodec.java:2176)
at android.media.MediaCodec.configure(MediaCodec.java:2092)
at com.otaliastudios.transcoder.internal.Codecs$encoders$1$lazyVideo$2.invoke(Codecs.kt:44)
at com.otaliastudios.transcoder.internal.Codecs$encoders$1$lazyVideo$2.invoke(Codecs.kt:41)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at com.otaliastudios.transcoder.internal.Codecs$encoders$1.getLazyVideo(Codecs.kt:41)
at com.otaliastudios.transcoder.internal.Codecs$encoders$1.get(Codecs.kt:50)
at com.otaliastudios.transcoder.internal.Codecs$encoders$1.get(Codecs.kt:30)
at com.otaliastudios.transcoder.internal.codec.Encoder.(Encoder.kt:43)
at com.otaliastudios.transcoder.internal.pipeline.PipelinesKt$VideoPipeline$1.invoke(pipelines.kt:64)
at com.otaliastudios.transcoder.internal.pipeline.PipelinesKt$VideoPipeline$1.invoke(pipelines.kt:58)
at com.otaliastudios.transcoder.internal.pipeline.Pipeline$Companion.build$lib_release(Pipeline.kt:62)
at com.otaliastudios.transcoder.internal.pipeline.PipelinesKt.VideoPipeline(pipelines.kt:58)
at com.otaliastudios.transcoder.internal.pipeline.PipelinesKt.RegularPipeline(pipelines.kt:47)
at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.createPipeline(DefaultTranscodeEngine.kt:82)
at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.access$createPipeline(DefaultTranscodeEngine.kt:27)
at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine$segments$1.invoke(DefaultTranscodeEngine.kt:42)
at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine$segments$1.invoke(DefaultTranscodeEngine.kt:42)
at com.otaliastudios.transcoder.internal.Segments.tryCreateSegment(Segments.kt:87)
at com.otaliastudios.transcoder.internal.Segments.next(Segments.kt:46)
at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.transcode(DefaultTranscodeEngine.kt:113)
at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:48)
at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2)
at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102)
at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:920)
```
Trying to solve it I found that it happens with the HEVC codec, since it has a sort adaptive playback which changes the codec in the middle of the stream or something like that.
It would be nice if someone can help me with this, thanks
Contributor guide
Assessment
This issue has not been assessed yet.