deepmedia / Transcoder

🎞 Hardware-accelerated video transcoding using Android MediaCodec APIs. Supports cropping, concatenation, clipping, audio processing, video speed and much more.
https://opensource.deepmedia.io/transcoder
Apache License 2.0
778 stars 164 forks source link

[Q] MP4 concatenation with Video PassThroughTrackStrategy does nothing #192

Open joaocsousa opened 7 months ago

joaocsousa commented 7 months ago

Maybe I misunderstood how this library works, but if I try to merge 2 mp4 files that are exactly the same, I assumed a PassThroughTrackStrategy would be enough and it would merge the 2 video files together. However when I do

Transcoder.into(output.fileDescriptor)
    .addDataSource(context, uri1)
    .addDataSource(context, uri2) // uri1 and uri2 are a copy of the same mp4 file
    .setVideoTrackStrategy(PassThroughTrackStrategy())
    .transcode()

I just get Validator has decided that the input is fine and transcoding is not necessary..

I was expecting this, but I would have expected to merging to take place. However the final output file is completely empty.

Is this expected behaviour, and if so Is there a way to make this work without a full video transcoding?

Thanks!

natario1 commented 1 month ago

It's a bug. Until it gets fixed, you should be able to work around the problem by passing WriteAlwaysValidator to setValidator.