如何解决无法将.ogg文件转换为.mp3或其他文件格式
我正在尝试将ogg音频文件转换为mp3或可以在ios设备中播放的其他音频文件格式,但是ogg文件没有被转换为mp3和caf等其他格式。我正在Android设备上测试转换。
这是我的ffmpeg命令参数:
Command: "ffmpeg -y -i $inputFilePath -c:a copy $outputFilePath"
Both input and output filenames were surrounded with quotations
[-y,-i,/data/user/0/com.musicapp/files/composer_audios/testtt ogg file.ogg,-c:a,copy,/storage/emulated/0/Android/data/com.musicapp/files/ball.mp3]
当我尝试转换为mp3时。引发此错误:
FFmpeg exited with rc: 1
[mp3 @ 0x73f7b36a00] Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
当我尝试转换为.caf文件时,会引发此错误:
FFmpeg exited with rc: 1
[caf @ 0x73f7b36a00] unsupported codec
Could not write header for output file #0 (incorrect codec parameters ?): Invalid data found when processing input
但是,如果我尝试将mp3文件转换为caf,mkv,mp4等格式,则不会引发错误。
解决方法
删除package com.example.edxposedapptemplate;
import android.graphics.Color;
import android.widget.TextView;
import android.os.Bundle;
import static de.robv.android.xposed.XposedHelpers.findAndHookMethod;
import static de.robv.android.xposed.XposedHelpers.setFloatField;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XC_MethodReplacement;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam;
public class MyModule implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Loaded app: " + lpparam.packageName);
if (!lpparam.packageName.equals("com.google.android.youtube")) {//check if the package being loaded is YouTube
return;
}
XposedBridge.log("YouTube loaded");
XposedHelpers.findAndHookMethod("com.google.android.apps.youtube.app.application.upgrade.NewVersionAvailableActivity",lpparam.classLoader,"onCreate",Bundle.class,new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
XposedHelpers.callMethod(param.thisObject,"f");
XposedHelpers.callMethod(param.thisObject,"h");
}
});
}
}
选项。
关于该选项,the ffmpeg documentation说:
一个特殊值
-c:a copy
(仅输出),指示流将不被重新编码。
您正在禁用编码并建议ffmpeg将vorbis流视为mp3流。
在您的情况下,您想要将输入流编码为其他输出流。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。