Skip to content

Video returns as a 0 bytes file for high quality videos, specifically with videos with HEVC codec #193

Open
@groverCG

Description

@groverCG

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.<init>(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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions