作者:一万20122012_982 | 来源:互联网 | 2023-08-11 10:11
首先你需要去下载一个ffmpegx,google一下吧。这个是专门为macos包装的mp4converter.安装的同是会告诉你哪里去下载mplayer和mencoder,都是有用
首先你需要去下载一个ffmpegx, google一下吧。这个是专门为macos包装的mp4 converter. 安装的同是会告诉你哪里去下载mplayer和mencoder, 都是有用的。
关键点就是rmvb不能通过ffmpegx直接转换成mp4. 因为版权的问题。rmvb只能先转换成avi然后再从avi转换成mp4.
要记住的就是把avi转换成mp4音频要是aac格式。视频你是选mpeg4(.mov)或mpeg4(.mp4)都可以。
但是如果我有大批量的视频要转换,一个一个的转非常慢。怎么办呢?还是用ruby写一个程序去干吧:
rmvb -> avi
MENCODER = "/Library/Application\\ Support/ffmpegX/mencoder "
# get all the rmvbs under folder
Dir.glob("rmvb/*.rmvb") do |x|
File.rename(x, x.gsub(/[^a-z0-9\/.]+/i, '-'))
target_file = x.to_s.gsub(/[^a-z0-9\/.]+/i, '-').gsub(/\Armvb/, 'avi').gsub(/rmvb/, 'avi')
#command = MENCODER + x.to_s + " -o " + target_file + " -of lavf -ofps 25 -oac faac cbr:preset=128 -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=480:352 -srate 22050 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames"
command = MENCODER + x.to_s + " -o " + target_file + " -of lavf -ofps 25 -oac faac cbr:preset=128 -ovc xvid -xvidencopts bitrate=900 -lavfopts i_certify_that_my_video_stream_does_not_use_b_frames"
unless File.exist?(target_file)
puts command
system (command)
end
end
avi -> mp4
FFMPEG = "/Applications/ffmpegX.app/Contents/Resources/ffmpeg -y -i "
# get all the rmvbs under folder
Dir.glob("avi/*.avi") do |x|
target_file = x.to_s.gsub(/\Aavi/, 'mov').gsub(/avi/, 'mp4')
command = FFMPEG + x.to_s + " -f mp4 -async 1 -s 480x320 -acodec aac -vcodec xvid -dts_delta_threshold 1 -r 25 -b 270k -me_range 25 -i_qfactor 0.71 -g 500 " + target_file
unless File.exist?(target_file)
puts command
system (command)
end
end
你可以让第一个程序先跑一会儿然后再让第二个程序开始跑。这样就可以一次性全部转换好了。代价就是你的mbpro cpu 永远是100%, 风扇4500rpm ;(