Reputation: 7966
I tried to follow ffmpeg4android library, and I get the problem when compressing the video, as the Log image below.
I use intent to transfer to Compressing Media class,
Intent intent = new Intent(this, CompressingMedia.class);
intent.putExtra("file_path", mLlItems.get(0).getPath());
startActivity(intent);
This is the class was transfered to :
public class CompressingMedia extends BaseWizard {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
Log.d(Prefs.TAG, "path " + intent.getExtras().getString("file_path"));
// /storage/emulated/0/DCIM/Camera/VID_20140312_090612.mp4
String command = "ffmpeg -y -i " + intent.getExtras().getString("file_path") +
" -strict experimental -s 320x240 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/out.mp4";
// if you want to change the default work location (/sdcard/videokit/) use the uncomment the below method.
// It must be defined before calling the copyLicenseAndDemoFilesFromAssetsToSDIfNeeded method,
// in order for this method to copy the assets to the correct location.
// setWorkingFolder("/sdcard/videokit/");
// this will copy the license file and the demo video file.
// to the videokit work folder location.
// without the license file the library will not work.
copyLicenseAndDemoFilesFromAssetsToSDIfNeeded();
commandStr = command;
setCommand(commandStr);
runTranscoing();
}
}
Although I received the notification Transcoding Successfully, but it looks like the capacity of file after compressing is always be 0. (the log in the bottom of images)
I don't know the result as image below is good or not, I can not get the expected result - The video was compressed totally successfully.
Someone know why after compressing the file is always be 0, please tell me. Thanks.
This is the Log Cat :
03-13 14:49:45.655: I/ActivityManager(6065): Timeline: Activity_launch_request id:app.cloudstringers time:38212359
03-13 14:49:45.665: V/Home(6065): Global ID is 000400010007;Sell is 3
03-13 14:49:45.770: D/ffmpeg4android(6065): path /storage/emulated/0/videokit/out.mp4
03-13 14:49:45.770: I/ffmpeg4android(6065): workingFolderPath: /sdcard/videokit/
03-13 14:49:45.775: D/ffmpeg4android(6065): Working directory exists, not coping assests (license file and demo videos)
03-13 14:49:45.785: D/ffmpeg4android(6065): output directory exists.
03-13 14:49:45.785: I/ffmpeg4android(6065): Command is set
03-13 14:49:45.785: I/ffmpeg4android(6065): set remoteNotificationIconId: 0
03-13 14:49:45.785: D/ffmpeg4android(6065): Client Cannot unbind - service not bound
03-13 14:49:45.785: D/ffmpeg4android(6065): Client stopService()
03-13 14:49:45.790: W/ContextImpl(6065): Implicit intents with startService are not safe: Intent { act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge } android.content.ContextWrapper.stopService:499 com.netcompss.ffmpeg4android_client.BaseWizard.stopService:451 com.netcompss.ffmpeg4android_client.BaseWizard.runTranscoing:285
03-13 14:49:45.795: I/ffmpeg4android(6065): !!!!!!!!!!!!!!!!!!services.size(): 1
03-13 14:49:45.795: I/ffmpeg4android(6065): putting Base categoty
03-13 14:49:45.810: D/ffmpeg4android(6065): started: com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge
03-13 14:49:45.810: D/ffmpeg4android(6065): Client startService()
03-13 14:49:45.810: D/ffmpeg4android(6065): bindService() called
03-13 14:49:45.815: W/ContextImpl(6065): Implicit intents with startService are not safe: Intent { act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge } android.content.ContextWrapper.bindService:517 com.netcompss.ffmpeg4android_client.BaseWizard.bindService:462 com.netcompss.ffmpeg4android_client.BaseWizard.runTranscoing:288
03-13 14:49:45.820: D/ffmpeg4android(6065): Client bindService()
03-13 14:49:45.935: I/ffmpeg4android(6616): =======service onCreate(): Stopping forground (to overcome 2.3.x bug)
03-13 14:49:45.935: I/ffmpeg4android(6616): =======service onBind()=======
03-13 14:49:45.940: I/ffmpeg4android(6616): ===onStartCommand called
03-13 14:49:45.940: I/ffmpeg4android(6616): ===onStartCommand cat: Base
03-13 14:49:45.940: D/ffmpeg4android(6616): onStartCommand, START_STICKY, base Command
03-13 14:49:45.955: I/ffmpeg4android(6616): get remoteNotificationIconId: 0
03-13 14:49:45.955: I/ffmpeg4android(6616): notifIcon is set
03-13 14:49:45.955: I/ffmpeg4android(6616): Start RemoteService with notification id: 5326
03-13 14:49:45.965: I/ffmpeg4android(6616): Run called.
03-13 14:49:45.965: D/ffmpeg4android(6616): Sleeping, waiting for command
03-13 14:49:45.970: D/ffmpeg4android(6065): Client onServiceConnected()
03-13 14:49:45.970: I/ffmpeg4android(6065): invokeService called
03-13 14:49:45.970: I/Videokit(6065): licenseCheck in path: /sdcard/videokit
03-13 14:49:45.970: I/Videokit(6065): isLicExistsComplex...
03-13 14:49:45.970: I/Videokit(6065): trying to open /sdcard/videokit/ffmpeglicense.lic
03-13 14:49:45.970: I/Videokit(6065): license file found...
03-13 14:49:45.970: I/Videokit(6065): time decoded: 1394535283
03-13 14:49:45.970: I/Videokit(6065): timeStrDec 1394535283 is a valid number.
03-13 14:49:45.970: I/Videokit(6065): time diff: 161702
03-13 14:49:45.970: I/Videokit(6065): You used 1 of your 15 trial days.
03-13 14:49:45.970: I/ffmpeg4android(6065): setting remote notification info
03-13 14:49:45.970: D/ffmpeg4android(6616): command items num: 21
03-13 14:49:45.970: D/ffmpeg4android(6616): command: ffmpeg -y -i /storage/emulated/0/videokit/out.mp4 -strict experimental -s 320x240 -r 15 -aspect 3:4 -ab 12288 -vcodec mpeg4 -b 2097152 -sample_fmt s16 /sdcard/out.mp4
03-13 14:49:45.970: D/ffmpeg4android(6616): workingFolder from remote: /sdcard/videokit
03-13 14:49:45.970: D/ffmpeg4android(6065): deleteing: /sdcard/videokit/vk.log isdeleted: true
03-13 14:49:45.975: D/ffmpeg4android(6065): deleteing: /sdcard/videokit/ffmpeg4android.log isdeleted: false
03-13 14:49:45.975: D/ffmpeg4android(6065): deleteing: /sdcard/videokit/videokit.log isdeleted: true
03-13 14:49:45.980: D/ffmpeg4android(6065): Client invokeService()
03-13 14:49:45.980: D/ffmpeg4android(6065): Acquire wake lock
03-13 14:49:46.265: D/ffmpeg4android(6616): Sleeping, waiting for command
03-13 14:49:46.295: D/ffmpeg4android(6065): TranscodeBackground doInBackground started
03-13 14:49:46.295: I/ffmpeg4android(6616): =======remote service runTranscoding ======
03-13 14:49:46.340: V/HomeAsync(6065): TOTAL_SPACE is 1;AVAILABLE_SPACE is 0.451
03-13 14:49:46.345: I/ActivityManager(6065): Timeline: Activity_idle id: android.os.BinderProxy@423deed8 time:38213045
03-13 14:49:46.345: I/ActivityManager(6065): Timeline: Activity_idle id: android.os.BinderProxy@420323a0 time:38213045
03-13 14:49:46.565: D/dalvikvm(6616): Trying to load lib /data/app-lib/app.cloudstringers-2/libvideokit.so 0x41b285f0
03-13 14:49:46.570: D/dalvikvm(6616): Added shared lib /data/app-lib/app.cloudstringers-2/libvideokit.so 0x41b285f0
03-13 14:49:46.570: I/Videokit(6616): Loading native library compiled at 21:59:53 Oct 23 2013
03-13 14:49:46.575: I/ffmpeg4android(6616): ===============Running command from thread path: /sdcard/videokit
03-13 14:49:46.575: I/Videokit(6616): vk ffmpeg sdcardPath: /sdcard/videokit
03-13 14:49:46.575: I/Videokit(6616): licenseCheck in path: /sdcard/videokit
03-13 14:49:46.575: I/Videokit(6616): isLicExistsComplex...
03-13 14:49:46.575: I/Videokit(6616): trying to open /sdcard/videokit/ffmpeglicense.lic
03-13 14:49:46.575: I/Videokit(6616): license file found...
03-13 14:49:46.575: I/ffmpeg4android(6616): =======ProgressBackgroundRemote doInBackground=========
03-13 14:49:46.575: I/Videokit(6616): time decoded: 1394535283
03-13 14:49:46.575: I/Videokit(6616): timeStrDec 1394535283 is a valid number.
03-13 14:49:46.575: I/Videokit(6616): time diff: 161703
03-13 14:49:46.575: I/Videokit(6616): You used 1 of your 15 trial days.
03-13 14:49:46.575: D/Videokit(6616): license check rc: 0
03-13 14:49:46.575: D/Videokit(6616): run() called verion 2.0
03-13 14:49:46.575: D/Videokit(6616): run passing off to main()
03-13 14:49:46.800: D/ffmpeg4android(6065): onServiceDisconnected
03-13 14:49:48.640: I/ffmpeg4android(6065): Got real duration: 00:00:07.78
03-13 14:49:48.640: I/ffmpeg4android(6065): ==== getting currentVkLogSize from VK
03-13 14:49:48.640: D/ffmpeg4android(6065): currentVkLogSize: 5751
03-13 14:49:48.645: I/ffmpeg4android(6065): No ffmpeg4android_log file, using vk log
03-13 14:49:48.645: I/line(6065): _rate, rate, width or height
03-13 14:49:48.650: I/line(6065): Statistics: 0 seeks, 0 writeouts
03-13 14:49:48.650: I/line(6065): Statistics: 72873 bytes read, 2 seeks
03-13 14:49:48.650: D/ffmpeg4android(6065): currentTimeStr: exit
03-13 14:49:48.650: D/ffmpeg4android(6065): ============Found one of the exit tokens in the log============
03-13 14:49:48.650: I/ffmpeg4android(6065): onProgressUpdate: 100
03-13 14:49:48.650: D/ffmpeg4android(6065): Releasing wake lock
03-13 14:49:48.650: D/ffmpeg4android(6065): TranscodeBackground onPostExecute
03-13 14:49:48.700: D/ffmpeg4android(6065): /sdcard/videokit/null length in bytes: 0
03-13 14:49:48.700: D/ffmpeg4android(6065): showNotifications
03-13 14:49:48.700: W/ffmpeg4android(6065): output file is not set use the setOutputFilePath method to set the full output file path
03-13 14:49:48.705: I/ffmpeg4android(6065): FFMPEG finished.
03-13 14:49:48.710: D/ffmpeg4android(6065): releaseService()
03-13 14:49:48.710: D/ffmpeg4android(6065): Client stopService()
03-13 14:49:48.710: W/ContextImpl(6065): Implicit intents with startService are not safe: Intent { act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge } android.content.ContextWrapper.stopService:499 com.netcompss.ffmpeg4android_client.BaseWizard.stopService:451 com.netcompss.ffmpeg4android_client.BaseWizard.handleServiceFinished:513
Upvotes: 3
Views: 7556
Reputation: 768
According to your log, the command you used is not correct. Its possible your video file does not correspond to the size, and aspect parameters you used.
See your log line here: 03-13 14:49:48.645: I/line(6065): _rate, rate, width or height
The best way is to post a link to the input video file so I can check it.
Upvotes: 0
Reputation: 11779
You may also consider using the real (and free!) FFmpeg for Android from the original source: http://trac.ffmpeg.org/wiki/How%20to%20compile%20FFmpeg%20for%20Android instead of using some third-party compilation from a guy who seems to violate FFmpeg LGPL license.
Upvotes: 2