microshow / RxFFmpeg

🔥💥RxFFmpeg 是基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架,包含以下功能:视频拼接,转码,压缩,裁剪,片头片尾,分离音视频,变速,添加静态贴纸和gif动态贴纸,添加字幕,添加滤镜,添加背景音乐,加速减速视频,倒放音视频,音频裁剪,变声,混音,图片合成视频,视频解码图片,抖音首页,视频播放器及支持 OpenSSL https 等主流特色功能
4.46k stars 748 forks source link

您好,执行这个命令为什么没有作用? (急) #103

Closed LinTaoAndroid closed 4 years ago

LinTaoAndroid commented 4 years ago

您好: 我在执行从本地.mp4文件中提取音频文件,命令如下: "ffmpeg -i {localVideoPath} -acodec copy -y -vn {outMusicpath}" 其中: localVideoPath= "/storage/emulated/0/app/video/V1019111414000000805" outMusicpath= "/storage/emulated/0/app/audio/V1019111414000000805.mp3" 执行本命令没有任何反应... 回调我也打印出来了,什么也没有 我本来是用RxFFmpegCommandList 拼接的命令,但是里面多加了字符: this.add("ffmpeg"); this.add("-y"); 然后我用的是: public static String[] splictMusicOrder(String inVideoPath, String outMusicPath) { List cmdlist = new ArrayList<>(); cmdlist.add("ffmpeg "); cmdlist.add("-i "); cmdlist.add("{"); cmdlist.add(inVideoPath); cmdlist.add("} "); cmdlist.add("-acodec "); cmdlist.add("copy "); cmdlist.add("-y "); cmdlist.add("-vn "); cmdlist.add("{"); cmdlist.add(outMusicPath); cmdlist.add("} "); return build(cmdlist); }

public static String[] build(List<String> cmdlist) {
    String[] command = new String[cmdlist.size()];
    for (int i = 0; i < cmdlist.size(); i++) {
        command[i] = cmdlist.get(i);
    }
    return command;
}

麻烦大神给看看,为什么执行此命令会没有任何反应,谢谢了

microshow commented 4 years ago

你的命令有问题吧 不需要{}

LinTaoAndroid commented 4 years ago

去掉{}也是无法执行... 在网上重新找了一个ffmpeg提取音频的命令也是无法执行...

microshow commented 4 years ago

要不就是你视频的音频编码格式问题 换个视频试试

yangfeng1994 commented 4 years ago

-i /storage/emulated/0/DCIM/Camera/3760da75ba01162359a3bc938f386821.mp4 -f mp3 -vn /storage/emulated/0/Android/data/com.android.mvideo.tools/cache/extractAudio_2019_12_13_18_27_38.aac

用这个命令就可以了

LinTaoAndroid commented 4 years ago

谢谢谢谢