以编程方式转码MPEG-2视频

时间:2009-01-01 00:20:07

标签: java video ffmpeg mpeg transcoding

我需要能够以编程方式将mpeg-2文件转码为.mp4,.mp3,.wmv,.rm(可选)和.flv(可选),并希望生成缩略图。我找到了Java Media Framework,但坦率地看起来很糟糕。这将运行一个Linux服务器,所以我可以使用Commons Exec来解决ffmpeg - ffmpeg会做我需要做的一切吗? FFmpeg似乎相当令人生畏,这就是为什么我无法找到这些信息,但它绝对是一个万能的交易。有什么建议吗?

4 个答案:

答案 0 :(得分:5)

Ffmpeg是最好最简单的。输出/转换视频:

ffmpeg -i {input}.ext -r {target_frame_rate} -ar {target_audio_rate} -b {target_bitrate} -s {width}x{height} {target}.ext

你的截图:

ffmpeg -i {input}.ext -r 1 -ss 00:00:04:005 -t 00:00:01 -an -s {width}x{height} {target_name}%d.jpg

15 fps是flv的标准,音频采样率应为44100(对于flv)。要使用的选项:-r指定帧速率为1 fps(一帧用作屏幕截图),-ss搜索您想要的位置hh:mm:ss:fff-t是持续时间(与你的一个fps匹配一秒),-an告诉ffmpeg忽略音频,-s是屏幕截图的大小。 %d是必要的,因为它将根据您使用的屏幕截图增加数字。有了上述内容,%d将始终为数字1(一帧,一个屏幕截图)。祝你好运。

答案 1 :(得分:2)

来自encoding.com的有趣网络服务将为您转码文件。

答案 2 :(得分:2)

您也可以直接从Java使用Xuggler,这提供了比JMF更好的编解码器和编码支持。

答案 3 :(得分:0)

Linux的流行转码应用程序是ffmpeg,transcodemencoder。转码和mencoder都使用ffmpeg,所有这三个都可以处理您需要的任务,包括FLV转码和视频缩略图。 ffmpeg可能是三者中最受欢迎的,所以你可能会找到更好的在线支持。另外值得一提的是ffmpeg支持多线程转码。

我建议使用ffmpeg。