将一个音频文件添加到MKV视频中。

我对多媒体的事情还是比较陌生的,我正在尝试找到一种制作漂亮的屏幕录像的方法。我已经能够用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

它的效果非常好,但我想在背景中加入音乐,如果我使用mencoder添加:

mencoder  -ovc copy -oac mix -audiofile track.mp3 out.mkv -o out.mp4

删除视频声音,我不想替换它,我想在解说中添加音乐,有什么好主意吗?
3个回答

你可以安装 mkvtoolnix。
sudo apt-get install mkvtoolnix

然后使用安装中的mkvmerge从命令行将音频和视频混合到mkv容器中。
还有一个图形界面工具,mkvtoolnix-gui,它是mkvtoolnix的前端。
sudo apt-get install mkvtoolnix-gui

在视频没有声音的目录中,使用名为input-video.mkv的视频文件和名为soundfile.mp3的音频文件进行混流,创建一个名为output-with-sound.mkv的新混流mkv文件,请按照以下步骤操作:
mkvmerge -o output-with-sound.mkv -A input-video.mkv soundfile.mp3

更多示例,包括同步,请点击此处:http://www.bunkus.org/videotools/mkvtoolnix/doc/mkvmerge.html

非常感谢,sabacon!我之前不知道有mkvmerge这个工具,我会用它来重新混合音频。 - Javier López
正确的安装命令是 sudo apt-get install mkvtoolnix-gui - Augusto
@augusto 非常感谢,我没有注意到多余的连字符,而且知道这个问题已经存在了很长时间。 - Sabacon

我不确定为什么mencoder对你来说不起作用,但你也可以用ffmpeg做同样的事情。你只需要在ffmpeg中使用两个输入即可。
 ffmpeg -i track.mp3 -i out.mkv -vcodec copy -acodec libfaac -ab 192k final.mkv

我没试过,但是我觉得你不可以用 -acodec copy,尤其是因为你在使用两种不同的编解码器。只要选择输出中你想要的内容并添加进去就行了,相对于视频来说非常快速。

1VLC 在使用该命令添加或删除音轨后无法打开 mkv 文件。 - user2513149
是的,ffmpeg中的mkv混流功能出现了问题。请参考这个问题:https://trac.ffmpeg.org/ticket/6037,他们似乎对此毫不在意。Ffmpeg因其速度慢而臭名昭著,但对于这个问题,他们甚至视而不见。 - Tiwenty

使用kdenlive软件并添加第二个音轨,然后重新混流。

哇!我不知道kdenlive,我一定会去看看的!谢谢,如果还有其他人知道如何在控制台中操作,请告诉我。 - Javier López
1在这里描述了sox merge的用法:http://sox.sourceforge.net/sox.html#lbAJ。我会从视频中分离出音频,然后使用sox合并它们,最后再将音频与视频混合在一起。 - RobotHumans
非常感谢你,AKing。这正是我要做的事情。 - Javier López