Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我需要使用ffmpeg转换音频文件,但出现错误_Java_Android_Ffmpeg - Fatal编程技术网

Java 我需要使用ffmpeg转换音频文件,但出现错误

Java 我需要使用ffmpeg转换音频文件,但出现错误,java,android,ffmpeg,Java,Android,Ffmpeg,我想把mp3文件转换成wav文件,但我不能。 我也尝试将mp3文件转换成其他格式,但总是出错。 如果您也在评论中告诉我如何导入FFmpeg库,可能我的FFmpeg实现有问题。 我搜索了很多,但找不到解决方案,可能我的FFmpeg命令代码有问题。如果你知道如何处理它,请帮助我。 这是我的密码 String s = " -i " + musicDbs.get(0).musicPath +" -vn -ar 44100 -b:a 192k "+ dir.getPath(); // s = -i /s

我想把mp3文件转换成wav文件,但我不能。 我也尝试将mp3文件转换成其他格式,但总是出错。 如果您也在评论中告诉我如何导入FFmpeg库,可能我的FFmpeg实现有问题。 我搜索了很多,但找不到解决方案,可能我的FFmpeg命令代码有问题。如果你知道如何处理它,请帮助我。 这是我的密码

String s = " -i " + musicDbs.get(0).musicPath +" -vn -ar 44100 -b:a 192k "+ dir.getPath();
// s =  -i /storage/emulated/0/Doto30/FX/Pishro_Ft_Hichkas_Divoone.mp3 -vn -ar 44100 -b:a 192k /storage/emulated/0/Doto30/.final_audio.wav
String[]cmd = s.split(" ");
    FFmpeg ffmpeg = FFmpeg.getInstance(context);
    try {
        ffmpeg.loadBinary(new LoadBinaryResponseHandler() {
            @Override
            public void onStart() {
            }

            @Override
            public void onFailure() {
            }

            @Override
            public void onSuccess() {
            }

            @Override
            public void onFinish() {
            }
        });
    } catch (Exception e) {
        Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
    }

    try {
        ffmpeg.execute(cmd, new ExecuteBinaryResponseHandler() {
            @Override
            public void onStart() {
                dialog.show();
            }

            @Override
            public void onProgress(String message) {

            }

            @Override
            public void onFailure(String message) {
                String s1 = message;
                Toast.makeText(context, s1, Toast.LENGTH_SHORT).show();
                dialog.dismiss();

            }

            @Override
            public void onSuccess(String message) {
                Toast.makeText(context, "Build has been successful", Toast.LENGTH_SHORT).show();
                dialog.dismiss();
            }

            @Override
            public void onFinish() {

            }
        });
    } catch (Exception e) {
        Toast.makeText(context, e.getMessage(), Toast.LENGTH_SHORT).show();
    } finally {
        if (ffmpeg.isFFmpegCommandRunning()) {
            ffmpeg.killRunningProcesses();
        }
    }
但我犯了这个错误

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
[mp3 @ 0xf6829000] Skipping 0 bytes of junk at 116058.   
[mjpeg @ 0xf687e400] Changing bps to 8
[mp3 @ 0xf6829000] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from '/storage/emulated/0/Doto30/FX/Pishro_Ft_Hichkas_Divoone.mp3':
Metadata:
  album_artist    : [3DaMusic.Ir]
  album           : [3DaMusic.Ir]
  artist          : [3DaMusic.Ir]
  composer        : [3DaMusic.Ir]
  disc            : [3DaMusic.Ir]
  genre           : [3DaMusic.Ir]
  title           : [3DaMusic.Ir]
  lyrics-eng      : [3DaMusic.Ir]
  track           : 1865
  encoded_by      : [3DaMusic.Ir]
  TOPE            : [3DaMusic.Ir]
  copyright       : [3DaMusic.Ir]
  TIT1            : [3DaMusic.Ir]
  date            : 2014
Duration: 00:03:48.08, start: 0.000000, bitrate: 132 kb/s
Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 530x533, 90k tbr, 90k tbn, 90k tbc
Metadata:
  title           : [www.shiraz-song.ir]
  comment         : Cover (front)
[NULL @ 0xf6829600] Unable to find a suitable output format for ''
: Invalid argument

如果你能帮我的话。

ffmpeg的美妙之处在于,你可以在终端的命令行上直接执行它,这是一种直接且更简单的方法,可以让输入和输出语法正常工作。。。一旦您的命令行运行OK并给出良好的结果,然后将这些设置放入对ffmpeg的编程调用中。。。我建议您首先从终端运行ffmpeg。谢谢您的建议,但根本没有帮助。错误表明语法错误。。。我建议您通过在终端中直接执行命令行ffmpeg来使用各种语法选项,然后在其工作后使用代码中新发现的语法:|::|::·················································工作一旦您的命令行运行OK并给出良好的结果,然后将这些设置放入对ffmpeg的编程调用中。。。我建议您首先从终端运行ffmpeg。谢谢您的建议,但根本没有帮助。错误表明语法错误。。。我建议您通过在终端中直接执行命令行ffmpeg来使用各种语法选项,然后在其工作后在代码中使用新发现的语法:|::|::|::|::|:|