Skip to content

Instantly share code, notes, and snippets.

@ssig33
Created February 11, 2013 02:13
Show Gist options
  • Select an option

  • Save ssig33/4751996 to your computer and use it in GitHub Desktop.

Select an option

Save ssig33/4751996 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
require 'fileutils'
raise 'please input mkv' unless ARGV[0] =~ /\.mkv$/
ARGV.select{|x| x =~ /\.mkv$/ }.each{|x|
mp4 = x.sub(/\.mkv$/, 'mp4')
info = `mkvmerge --identify "#{x}"`.split("\n")
video_id = info.select{|s| s =~ /video/}.first.split(' ')[1].to_i
audio_id = info.select{|s| s =~ /audio/}.first.split(' ')[1].to_i
system 'mkvextract', 'tracks', x, "#{video_id}:vid.h264", "#{audio_id}:audio.aac"
system 'MP4Box', '-add', "vid.h264", '-add', 'audio.aac', '-new', mp4
FileUtils.rm 'vid.h264'
FileUtils.rm 'audio.aac'
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment