linkedin / LiTr

Lightweight hardware accelerated video/audio transcoder for Android.
BSD 2-Clause "Simplified" License
610 stars 85 forks source link

Better debugging for TrackTranscoderException #261

Open Queatz opened 1 year ago

Queatz commented 1 year ago
Transformation job error
com.linkedin.android.litr.exception.TrackTranscoderException: Failed to configure encoder codec.Media transformation failed for job id: null
Media format: {color-format=6, durationUs=7832955, mime=video/x-vnd.on2.vp9, profile=32, width=768, bitrate=8000000, frame-rate=30, height=1280}
Diagnostic info: null
at com.linkedin.android.litr.utils.CodecUtils.getAndConfigureCodec(CodecUtils.java:217)
// ...
Caused by: java.lang.IllegalStateException
    at com.linkedin.android.litr.utils.CodecUtils.createAndConfigureCodec(CodecUtils.java:283)
    at com.linkedin.android.litr.utils.CodecUtils.getAndConfigureCodecByType(CodecUtils.java:230)
    at com.linkedin.android.litr.utils.CodecUtils.getAndConfigureCodec(CodecUtils.java:205)

I did some debugging and that exception from CodecUtils.java:283 is coming from an IllegalArgumentException from the native code, but there's not much info to go on.

I have tried a variation of including / not including these keys on createVideoFormat:

KEY_PROFILE KEY_COLOR_FORMAT KEY_BIT_RATE KEY_DURATION

Replacing createVideoFormat with null works but I'm trying to downscale a video.

What's the best way to figure out what's going on?

izzytwosheds commented 1 year ago

Apologies for late response. Try adding KEY_FRAME_RATE to your video MediaFormat, some encoders don't like when it is missing.