public static void aviconvertmp4(File source, File target){
AudioAttributes audio = new AudioAttributes();
audio.setCodec("aac"); //音频编码格式
audio.setBitRate(new Integer(64000));
audio.setChannels(new Integer(1));
audio.setSamplingRate(new Integer(22050));
VideoAttributes video = new VideoAttributes();
video.setCodec("libx264");//视频编码格式
video.setBitRate(new Integer(180000));
video.setFrameRate(new Integer(1));
EncodingAttributes attrs = new EncodingAttributes();
attrs.setFormat("mp4");
attrs.setAudioAttributes(audio);
attrs.setVideoAttributes(video);
Encoder encoder = new Encoder();
MultimediaObject multimediaObject = new MultimediaObject(source);
try {
encoder.encode(multimediaObject, target, attrs);//转换开始。。。
} catch (EncoderException e) {
e.printStackTrace();
}
}
使用FFMPEG将AVI转换为MP4是一个相对直接的过程。以下是一些常见的命令示例,这些命令应该适用于大多数情况:
如果你希望保持视频和音频流的原始质量,可以使用以下命令:
css
ffmpeg -i input_filename.avi -c:v copy -c:a copy -y output_filename.mp4
这个命令将AVI文件转换为MP4文件,同时保持视频和音频流的原始质量。
2. 如果你希望对视频进行重新编码,可以使用以下命令:
css
ffmpeg -i input_filename.avi -c:v libx264 -crf 19 -preset slow -c:a aac -b:a 192k -ac 2 output_filename.mp4
这个命令将AVI文件转换为MP4文件,并使用libx264对视频进行重新编码。CRF参数用于控制视频质量,值越小,质量越高。preset参数用于控制编码速度,slow表示较慢但质量较高的编码速度。AAC音频编码器和192k的音频比特率被用于重新编码音频。
请注意,这些命令中的参数可能会根据你的具体需求和输入文件的具体情况而有所不同。在使用FFMPEG进行格式转换时,你可以根据需要进行调整。例如,你可以通过添加其他参数来控制输出文件的分辨率、帧率、编码器等。
另外,FFMPEG还提供了许多其他选项和参数,可以用于更高级的转换和编辑任务。如果你需要进行更复杂的操作,建议查阅FFMPEG的文档或寻求专业人士的帮助。