我试图遵循ffmpeg4android库,在压缩视频时遇到了问题,如下面的日志图像所示。
我打算转到压缩媒体类,
Intent intent = new Intent(this, CompressingMedia.class);
intent.putExtra("file_path", mLlItems.get(0).getPath());
startActivity(intent);
这是该类被转移到:
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();
}
}
虽然我收到了Transcoding Successfully的通知,但压缩后的文件容量看起来总是0。(图像底部的日志)
我不知道结果,因为下面的图片是好是坏,我不能得到预期的结果-视频被完全成功压缩。
有人知道为什么压缩后的文件总是0,请告诉我。谢谢。
这是日志类别:
03-13 14:49:45.655:I/ActivityManager(6065):时间线:Activity_launch_request id:app.cloudstringers时间:38212359
03-13 14:49:45.665:V/Home(6065):全球ID为000400010007;卖出3
03-13 14:49:45.770:D/ffmpeg4android(6065):路径/存储/模拟/0/videoket/out.mp4
03-13 14:49:45.770:I/ffmpeg4android(6065):workingFolderPath:/SD卡/视频工具包/
03-13 14:49:45.775:D/ffmpeg4android(6065):工作目录存在,无法应对assests(许可证文件和演示视频)
03-13 14:49:45.785:D/ffmpeg4android(6065):输出目录存在。
03-13 14:49:45.785:I/ffmpeg4android(6065):命令设置为
03-13 14:49:45.785:I/ffmpeg4android(6065):设置remoteNotificationIconId:0
03-13 14:49:45.785:D/ffmpeg4android(6065):客户端无法解除绑定-服务未绑定
03-13 14:49:45.785:D/ffmpeg4android(6065):客户端停止服务()
03-13 14:49:45.790:W/ContextImpl(6065):具有startService不安全:意向{act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge}android.content.ContextWrapper.stopService:499com.netcompss.ffmpeg4android_client.BaseWizard.stopService:451com.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):将基本类别放入
03-13 14:49:45.810:D/ffmpeg4android(6065):已启动:com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge
03-13 14:49:45.810:D/ffmpeg4android(6065):客户端启动服务()
03-13 14:49:45.810:D/ffmpeg4android(6065):bindService()调用
03-13 14:49:45.815:W/ContextImpl(6065):具有startService不安全:意向{act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge}android.content.ContextWrapper.bindService:517com.netcompss.ffmpeg4android_client.BaseWizard.bindService:462com.netcompss.ffmpeg4android_client.BaseWizard.runTranscoing:288
03-13 14:49:45.820:D/ffmpeg4android(6065):客户端bindService()
03-13 14:49:45.935:I/ffmpeg4android(6616):======服务onCreate():停止forground(以克服2.3.x错误)
03-13 14:49:45.935:I/ffmpeg4android(6616):====服务onBind()======
03-13 14:49:45.940:I/ffmpeg4android(6616):===调用的onStartCommand
03-13 14:49:45.940:I/ffmpeg4android(6616):===onStartCommand猫:基本
03-13 14:49:45.940:D/ffmpeg4android(6616):onStartCommand,START_SICKY,基本命令
03-13 14:49:45.955:I/ffmpeg4android(6616):获取remoteNotificationIconId:0
03-13 14:49:45.955:I/ffmpeg4android(6616):notifIcon设置为
03-13 14:49:45.955:I/ffmpeg4android(6616):用启动远程服务通知id:5326
03-13 14:49:45.965:I/ffmpeg4android(6616):已调用Run。
03-13 14:49:45.965:D/ffmpeg4android(6616):睡觉,等待命令
03-13 14:49:45.970:D/ffmpeg4android(6065):客户端onServiceConnected()
03-13 14:49:45.970:I/ffmpeg4android(6065):调用名为的服务
03-13 14:49:45.970:I/Videokit(6065):licenseCheck-in路径:/SD卡/视频工具包
03-13 14:49:45.970:I/Videokit(6065):isLicExistsComplex。。。
03-13 14:49:45.970:I/Videokit(6065):尝试打开/sdcard/videokit/ffmpeglicense.lic
03-13 14:49:45.970:I/Videokit(6065):找到许可证文件。。。
03-13 14:49:45.970:I/Videokit(6065):解码时间:1394535283
03-13 14:49:45.970:I/Videokit(6065):timeStrDec 1394535283是有效的数字
03-13 14:49:45.970:I/Videokit(6065):时间差异:161702
03-13 14:49:45.970:I/Videokit(6065):您使用了15次试验中的1次天。
03-13 14:49:45.970:I/ffmpeg4android(6065):设置远程通知信息
03-13 14:49:45.970:D/ffmpeg4android(6616):命令项编号:21
03-13 14:49:45.970:D/ffmpeg4android(6616):命令:ffmpeg-y-i/存储/模拟/0/videoket/out.mp4-严格的实验-s 320x240-r 15-方面3:4-ab 12288-vcodec mpeg4-b 2097152-sample_fmt s16/sdcard/out.mp4
03-13 14:49:45.970:D/ffmpeg4android(6616):工作文件夹来自远程:/SD卡/视频工具包
03-13 14:49:45.970:D/ffmpeg4android(6065):删除:/sdcard/videokit/vk.log被删除:真正的
03-13 14:49:45.975:D/ffmpeg4android(6065):删除:/sdcard/videokit/ffmpeg4android.log已删除:错误
03-13 14:49:45.975:D/ffmpeg4android(6065):删除:/sdcard/videoket/videokit.log被删除:true
03-13 14:49:45.980:D/ffmpeg4android(6065):客户端调用服务()
03-13 14:49:45.980:D/ffmpeg4android(6065):获取唤醒锁定
03-13 14:49:46.265:D/ffmpeg4android(6616):睡觉,等待命令
03-13 14:49:46.295:D/ffmpeg4android(6065):转码背景doInBackground启动
03-13 14:49:46.295:I/ffmpeg4android(6616):======远程服务runTranscoding===
03-13 14:49:46.340:V/HomeAsync(6065):TOTAL_SPACE为1.AVAILABLE_SPACE为0.451
03-13 14:49:46.345:I/ActivityManager(6065):时间轴:Activity_idleid:android.os.BinderProxy@423deed8时间:38213045
03-13 14:49:46.345:I/ActivityManager(6065):时间轴:Activity_idleid:android.os.BinderProxy@420323a0时间:38213045
03-13 14:49:46.565:D/dalvikvm(6616):正在尝试加载lib/data/app-lib/app.cloudstringer-2/libvideokit.so 0x41b285f0
03-13 14:49:46.570:D/dalvikvm(6616):添加共享库/data/app-lib/app.cloudstringer-2/libvideokit.so 0x41b285f0
03-13 14:49:46.570:I/Videokit(6616):加载编译的本地库2013年10月23日21:59:53
03-13 14:49:46.575:I/ffmpeg4android(6616):==============正在运行来自线程路径的命令:/sdcard/videokit
03-13 14:49:46.575:I/Videokit(6616):vk ffmpeg SD卡路径:/SD卡/视频工具包
03-13 14:49:46.575:I/Videokit(6616):license签入路径:/SD卡/视频工具包
03-13 14:49:46.575:I/Videokit(6616):isLicExistsComplex。。。
03-13 14:49:46.575:I/Videokit(6616):尝试打开/sdcard/videokit/ffmpeglicense.lic
03-13 14:49:46.575:I/Videokit(6616):找到许可证文件。。。
03-13 14:49:46.575:I/ffmpeg4android(6616):=========ProgressBackgroundRemote doInBackground======
03-13 14:49:46.575:I/Videokit(6616):解码时间:1394535283
03-13 14:49:46.575:I/Videokit(6616):timeStrDec 1394535283是有效的数字
03-13 14:49:46.575:I/Videokit(6616):时间差异:161703
03-13 14:49:46.575:I/Videokit(6616):您使用了15次试验中的1次天。
03-13 14:49:46.575:D/Videokit(6616):许可证检查rc:0
03-13 14:49:46.575:D/Videokit(6616):run()调用verion 2.0
03-13 14:49:46.575:D/Videokit(6616):运行传递到主()
03-13 14:49:46.800:D/ffmpeg4android(6065):onServiceDisconnected
03-13 14:49:48.640:I/ffmpeg4android(6065):获得实际持续时间:00:00:07.78
03-13 14:49:48.640:I/ffmpeg4android(6065):===获取来自VK 的currentVkLogSize
03-13 14:49:48.640:D/ffmpeg4android(6065):currentVkLogSize:5751
03-13 14:49:48.645:I/ffmpeg4android(6065):无ffmpeg4 android_log文件,使用vk日志
03-13 14:49:48.645:I/line(6065):_速率、速率、宽度或高度
03-13 14:49:48.650:I/line(6065):统计:0次查找,0次写入
03-13 14:49:48.650:I/line(6065):统计数据:读取72873字节,2寻求
03-13 14:49:48.650:D/ffmpeg4android(6065):currentTimeStr:退出
03-13 14:49:48.650:D/ffmpeg4android(6065):=============找到其中一个日志中的退出令牌==========
03-13 14:49:48.650:I/ffmpeg4android(6065):onProgressUpdate:100
03-13 14:49:48.650:D/ffmpeg4android(6065):释放唤醒锁定
03-13 14:49:48.650:D/ffmpeg4android(6065):转码背景onPostExecute
03-13 14:49:48.700:D/ffmpeg4android(6065):/sdcard/videokit/null字节长度:0
03-13 14:49:48.700:D/ffmpeg4android(6065):显示通知
03-13 14:49:48.700:W/ffmpeg4android(6065):输出文件未设置为使用setOutputFilePath方法设置完整的输出文件路径
03-13 14:49:48.705:I/ffmpeg4android(6065):FFMPEG完成。
03-13 14:49:48.710:D/ffmpeg4android(6065):releaseService()
03-13 14:49:48.710:D/ffmpeg4android(6065):客户端停止服务()
03-13 14:49:48.710:W/ContextImpl(6065):具有startService不安全:意向{act=com.netcompss.ffmpeg4android.FFMpegRemoteServiceBridge}android.content.ContextWrapper.stopService:499com.netcompss.ffmpeg4android_client.BaseWizard.stopService:451com.netcompss.ffmpeg4android_client.BaseWizard.handleServiceFinished:513
您也可以考虑使用来自原始来源的Android版真实(免费!)FFmpeg:http://trac.ffmpeg.org/wiki/How%20to%20compile%20FFmpeg%20for%20Android而不是使用一个似乎违反了FFmpeg LGPL许可证的家伙的一些第三方编译。
根据日志,您使用的命令不正确。您的视频文件可能与您使用的大小和方面参数不一致。
请在此处查看您的日志行:03-13 14:49:48.645:I/line(6065):_速率、速率、宽度或高度
最好的方法是发布一个链接到输入视频文件,这样我就可以检查它