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

有帮助吗?

解决方案

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(一帧,一个屏幕截图)。祝你好运。

其他提示

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

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

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

我建议使用ffmpeg。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top