Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android video trimming via ffmpeg

I have downloaded video trimming code from github from this link.

It’s working perfectly for the first time, but when I try to run it for the second time the code crashes without any exception then again when I try to run it for the 3rd time after the crash it works! Does any one have any idea for this kind of behaviour?

I am also developing an application which has one module of trimming videos. I would really appreciate it, if any one could help me .

like image 954
Karan_Rana Avatar asked Aug 10 '12 08:08

Karan_Rana


People also ask

Can I use FFmpeg on android?

To integrate FFmpeg in your android application you can use pre-compiled libraries like FFmpeg, which provide multiple predefined multimedia operations(Queries) and which is easy to integrate by adding FFmpeg dependency in app module gradle file and sync project.


2 Answers

https://lists.ffmpeg.org/pipermail/libav-user/2012-May/001964.html

Calling native method twice of third party library in an Activity causes the Android application to close down

read about the issue with static vars in 'ffmpeg.c' ...

I would bet that u have the same problem and need to do something (3 alternate choices) to reset or GC those vars:

  1. get the java classloader that loaded the lib and GC it

  2. in the c-layer do what the OP did in above link

  3. write a 2nd shared lib that uses 'dlsym' and 'dlclose' on the first library during each call cycle

github , see the 'README' here

same issue that u r having

like image 119
Robert Rowntree Avatar answered Oct 08 '22 00:10

Robert Rowntree


Just make a method in your ffmpeg.c which will seems like this

void exitmycode(){
       ffmpeg_exit(0);

}

ffmpeg_exit(0) method is already there in the ffmpeg.c you just have to call exitmycode(); from your main C file after the completion of video trimming.

Now what was happening is that when you trim a video or anything else with the ffmpeg it doesn't get exit completely, so the next time you run the command it get exited, but it also don't run your trim command.Again if you run that third time, command get executed perfectly. So, what I had done is calling the ffmpeg_exit(0) manually at the end of processing done.

like image 36
Jagdeep Singh Avatar answered Oct 07 '22 22:10

Jagdeep Singh