MacOS 下如何把rmvb转换成iphone可以播放的格式(mp4, mov)

首先你需要去下载一个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 ;(

你可能感兴趣的:(Google,F#,Ruby)