Add an audio file to and mkv video
I'm quite new to multimedia things, I'm trying to find a way to make nice screencasts, I've already been able to capture my desktop with ffmpeg:
$ ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 30 -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -i :0.0 -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 -y out.mkv
It works pretty nice, but I'd like to add music in the background, if I add it with mencoder:
mencoder -ovc copy -oac mix -audiofile track.mp3 out.mkv -o out.mp4
It delete the video sound, I don't want to replace it, I want to add music to my explanation, any ideas?
Solution 1:
You can install mkvtoolnix;
sudo apt-get install mkvtoolnix
Then use mkvmerge from the installation to mux audio and video into the mkv container from the command line.
There is also a Gui tool, mkvtoolnix-gui that is a front end to mkvtoolnix.
sudo apt-get install mkvtoolnix-gui
Example to mux video file called, input-video.mkv with a sound file called soundfile.mp3, creating a new muxed mkv file called output-with-sound.mkv, do the following in the directory where you have the video without audio and the audio file:
mkvmerge -o output-with-sound.mkv -A input-video.mkv soundfile.mp3
More examples including synchronization here: http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge.html
Solution 2:
kdenlive and add a second audio track, then remux
Solution 3:
I'm not sure why mencoder didn't work for you, but you can also do the same thing with ffmpeg. You just need to use two inputs to ffmpeg.
ffmpeg -i track.mp3 -i out.mkv -vcodec copy -acodec libfaac -ab 192k final.mkv
I didn't try it, but I don't think you can do -acodec copy, especially since you're using two different codecs. Just pick whatever you want in the output and add that in, its really fast compared to the video.