当前位置: 首页 > 知识库问答 >
问题:

用ffmpeg4android库压缩视频

阎成天
2023-03-14

我试着按照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();
    }
}

03-13 14:49:45.770:I/FFMPEG4Android(6065):WorkingFolderPath://sdcard/videokit/

03-13 14:49:45.775:d/ffmpeg4android(6065):工作目录存在,不存在(许可证文件和演示视频)

03-13 14:49:45.785:d/ffmpeg4android(6065):输出目录存在。

03-13 14:49:45.810:D/FFMPEG4Android(6065):Client startService()

03-13 14:49:45.810:D/FFMPEG4Android(6065):bindService()调用

03-13 14:49:45.815:W/ContexTimPL(6065):startService的隐式意图不安全: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.955:I/FFMPEG4Android(6616):使用通知ID:5326启动RemoteService

03-13 14:49:45.965:I/FFMPEG4Android(6616):运行调用。

03-13 14:49:45.965:D/FFMPEG4Android(6616):Hibernate,等待命令

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:46.265:D/FFMPEG4Android(6616):睡眠,等待命令

03-13 14:49:46.295:D/FFMPEG4Android(6065):TranscodeBackground doInBackground启动

03-13 14:49:46.295:I/FFMPEG4Android(6616):==========远程服务运行代码转换=======

03-13 14:49:46.575:I/Videokit(6616):Path:/sdcard/Videokit中的licenseCheck

03-13 14:49:46.575:I/Videokit(6616):伊斯兰存在复杂...

03-13 14:49:46.575:I/videokit(6616):试图打开/sdcard/videokit/ffmpeglicense.lic

03-13 14:49:46.575:D/Videokit(6616):run()称为verion 2.0

03-13 14:49:46.575:D/Videokit(6616):运行传给main()

03-13 14:49:46.800:D/FFMPEG4Android(6065):onServiceDisconnected

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.710:W/ContexTimPL(6065):startService的隐式意图不安全:Intent{act=com.netcompss.ffmpeg4android.ffmpegremoteserviceBridge}Android.content.contextwrapper.stopService:499 com.netcompss.ffmcompss.ffmcompss.ffmcompss.ffmcompss.ffmcompss.ffmcroid_client.basewizard.stopService:451

共有1个答案

万志专
2023-03-14

你也可以考虑使用真实的(和免费的!)ff mpeg for Android的原始来源:http://trac.FFmpeg.org/wiki/how%20to%20compile%20FFmpeg%20for%20Android,而不是使用一个似乎违反了ff mpeg LGPL许可的人的第三方编译

 类似资料:
  • 我正在建立一个应用程序,我需要压缩视频之前,上传到服务器。未经压缩的视频约为五分钟,60M,Android视频位2x1024x1024,640*480。现在我正在使用FFMPEG库压缩视频http://androidwarzone.blogspot.co.il/2011/12/ffmpeg4android.html。以下是command commandStr=“ffmpeg-y-i”+url+“-

  • 我有一个学校作业,要求我接受一个输入流,并使用apache commons压缩库将其压缩成一个字节数组,格式有5种(根据用户规范)。这5种格式是:ZIP、JAR、SEVENZ、BZIP2和gzip。我编写了以下方法以JAR格式压缩输入流,但得到了一个带有字符串“no current entry”的illegalStateException。

  • 我正在尝试使用ffmpeg和使用以下命令压缩一个视频。 然而,生成的视频的大小大于原始视频的大小。有没有人可以指出为什么会发生这种情况,如果有其他命令我应该使用。

  • 我想将本地保存的视频文件压缩到更小的大小,以便上传到服务器。 自从我使用MediaCodec以来,我发现了一些压缩视频的技巧。以下是我遵循的步骤 1) . 使用MediaExrtactor提取媒体文件并对其进行解码。2) . 使用所需的文件格式创建编码器(3)。创建muxer以将文件保存在本地存储中。(不完整) 问题:但我不知道如何对已经解码的流进行编码,并使用MediaMuxer将其保存到本地存

  • 我尝试使用FFMPEG和这个库压缩视频:https://github.com/guardianproject/android-ffmpeg-java

  • 问题内容: 因此,目前我正在使用它来压缩视频: 当我在2秒钟内录制视频时,大小为 4.3 MB ,当我在6秒钟内录制视频时,文件的大小为 9.3 MB 。 有任何减小尺寸的提示吗? 问题答案: 此扩展专注于将其导出到较低质量的设置(在本例中为“中”),并使用容器,而不是iOS偏爱的容器。这可能会导致质量下降,但是您可以在尝试微调输出时尝试使用更高的输出设置和不同的格式。