ffmpeg 将任何音频格式转换为与 Flash 播放器兼容的音频

标签 ffmpeg mp3 flash red5

现在我正在使用 Red5 Server 流式传输 mp3 文件,但问题是 flash 播放器无法播放某些音频文件。
那么有没有办法将用户上传的每个音频文件转换为使用 ffmpeg 兼容的 Flash 播放器?

最佳答案

一种方法是使用 ProcessBuilder并调用ffmpeg;请注意,这只会处理您编译的 ffmpeg 具有编解码器的音频文件。

导入java.io.File;
导入 java.io.IOException;

公共(public)类 SimpleTranscoder {

公共(public)静态无效转码(文件输入文件){
ProcessBuilder pb = new ProcessBuilder("C:\\ffmpeg\\ffmpeg.exe", "-i", inputFile.getAbsolutePath(), "-acodec", "libmp3lame", "-asamplerate", "44100", "- ab", "32k", "-vn", (inputFile.getParent() + '/' + inputFile.getName() + ".mp3"));
pb.redirectErrorStream(true);
进程 p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
字符串线=空;
while ((line=br.readLine()) != null) {
System.out.println(line);
}
}

}

另一种方式是使用 Xuggler,但项目不再维护。

导入 com.xuggle.xuggler.Converter;
导入java.io.File;
导入 java.io.IOException;

公共(public)类 SimpleTranscoder {

公共(public)静态无效转码(文件输入文件){
转换器转换器 = 新转换器();
//传递通常在命令行中使用的选项
字符串 [] 参数 = {
inputFile.getAbsolutePath(),
“-acodec”,“libmp3lame”,
“-asamplerate”,“44100”,
“-ab”,“32k”,
“-vn”,
inputFile.getParent() + '/' + inputFile.getName() + ".mp3"
}
尝试 {
//使用我们提供的选项运行转码器。
converter.run(converter.parseOptions(converter.defineOptions(), arguments));
} 捕捉(异常 e){
e.printStackTrace();
}
}

}

关于ffmpeg 将任何音频格式转换为与 Flash 播放器兼容的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24602607/

相关文章:

python - 带 Pyaudio 的 MP3

javascript - 没有ExternalInterface的Flash和javascript通信

flash - html5 视频是否支持手机(symbian、android、iphone)开箱即用的 flv?

FFMPEG 删除将一层过渡到另一层

c# - 在 .NET (ffmpeg) 中启动时进程停止

ffmpeg 将 yuv400p16le 转换为 yuv42016le

javascript - 有没有办法使用pdf.js为pdf渲染编写javascript事件

ffmpeg - 在使用 ffmpeg 转换视频文件时,如何实现良好的压缩和时间比率?

lisp - 如何解码mp3文件

javascript - 访问 jQuery 中的重复标签