使用ffmpeg4安卓库压缩视频



我试图遵循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):_速率、速率、宽度或高度

最好的方法是发布一个链接到输入视频文件,这样我就可以检查它

相关内容

  • 没有找到相关文章

最新更新