android - FFmpeg 错误输出文件 #0 不包含任何流

标签 android ffmpeg android-ffmpeg

我在使用 FFmpeg 剪切视频的一部分时遇到错误

以下是我的代码

String[] cmd = {"ffmpeg -ss 0 -i "+mPath+" -t 30 -c copy "+ (Environment.getExternalStorageDirectory().getAbsolutePath()+"/sample.mp4")};
executeCommand(cmd);

函数执行命令

void executeCommand(String[] cmd) {
    try {
        fFmpeg.execute(cmd, new FFmpegExecuteResponseHandler() {
            @Override
            public void onSuccess(String message) {
                Toast.makeText(VideoFullScreen.this, "finished :" + message, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onProgress(String message) {

            }

            @Override
            public void onFailure(String message) {
                Log.e("Error",message);
            }

            @Override
            public void onStart() {

            }

            @Override
            public void onFinish() {

            }
        });
    } catch (FFmpegCommandAlreadyRunningException e) {
        e.printStackTrace();
    }
}

错误

ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers

built with gcc 4.8 (GCC)

configuration: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-pthreads --disable-debug --disable-ffserver --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-ffprobe --enable-gpl --enable-yasm --disable-doc --disable-shared --enable-static --pkg-config=/home/vagrant/SourceCode/ffmpeg-android/ffmpeg-pkg-config --prefix=/home/vagrant/SourceCode/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-libs='-lpng -lexpat -lm' --extra-cxxflags=

libavutil 55. 17.103 / 55. 17.103

libavcodec 57. 24.102 / 57. 24.102

libavformat 57. 25.100 / 57. 25.100

libavdevice 57. 0.101 / 57. 0.101

libavfilter 6. 31.100 / 6. 31.100

libswscale 4. 0.100 / 4. 0.100

libswresample 2. 0.101 / 2. 0.101

libpostproc 54. 0.100 / 54. 0.100

Output #0, mp4, to 'ffmpeg -ss 0 -i /storage/emulated/0/Video/Demo.mp4 -t 30 -c copy /storage/emulated/0/sample.mp4':

Output file #0 does not contain any stream

最佳答案

This is an answer to my own question

我的问题出在我传递的命令字符串数组中

This answer is to the people who all are facing the similar kind of issues with ffmpeg

使用 ffmpeg 时应遵循的重要事项

  1. 确保您在正确的 String Array

    中传递命令
    String[] cmd = {"-ss", "0", "-i" ,input_video_path, "-t" ,"30", "-c", "copy",output_video_path};
    
  2. 不要在您传递的参数和标志中添加任何额外空格 {“-c”是错误的

  3. 不要在 cmd 数组中传递 ffmpeg {“ffmpeg”是错误的

希望对大家有帮助

关于android - FFmpeg 错误输出文件 #0 不包含任何流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46365713/

相关文章:

android - 在 Android 中使用 MediaRecorder 录制时使用 ffmpeg 处理视频

android - 如何使用ffmpeg进行多线程?

java - ScrollView 高度不适合其内容 - Android Java

Android Espresso 库导入

android - 如何使用kotlin在 Dagger 中生成包含@ContributesAndroidInjector的模块?

android - android 上的 ffmpeg neon 编译 - 汇编程序错误

audio - ffmpeg 滤波器的频率响应

android - 相机应用程序在 android ffmpeg 应用程序上失败

android - 如何获得修订号?

python - 如何减小从 Pydub 导出的 .wav 文件的大小