从 XVID 文件中删除音频流

从 XVID 文件中删除音频流

我有一堆 Xvid 文件,每个文件都有我不想要的音频流。如何使用 Linux 命令行删除我不想要的音轨?

我不需要整个脚本(循环),只需要使用命令来单独处理每个 avi 文件(除非 cmd 本身内置了批量修改功能)。

我不相信该文件位于 mkv 容器中,因为 mkvinfo 没有找到任何内容。以下是 mplayer 输出的部分内容(感谢 ~quack):

[aviheader] Video stream found, -vid 0
ID_AUDIO_ID=1
[aviheader] Audio stream found, -aid 1
ID_AUDIO_ID=2
[aviheader] Audio stream found, -aid 2
VIDEO:  [XVID]  512x384  12bpp  25.000 fps  1013.4 kbps (123.7 kbyte/s)

答案1

坦白说,我认为你会更喜欢使用ffmpeg解决方案。但我认为mencodermplayer的编码器)也可以做到这一点……而且它可以,但是只是副作用——因为它建立在播放器之上,所以它一次只能处理一个音频流。如果您要逆转这个过程(将第二个音频流添加到只有一个音频流的文件),则需要使用其他工具。

-aid X选项选择音频流(将 X 替换为流的 ID 号)。看起来mplayer您引用的输出已经显示了正确的 ID 号,因此请尝试使用这些 ID 号。这将保留第一个音频流(如果您想要第二个,请使用-aid 2它):

$ mencoder orig.avi -o new.avi -oac copy -ovc copy -aid 1

其他可能有帮助的命令行 AVI 工具包括:

  • avidemux(你可以用 编写脚本-nogui
  • transcode

答案2

使用ffmpeg您可以执行以下操作

ffmpeg -i 输入 -map 0:0 -map 0:1 -vcodec 复制 -acodec 复制输出

这应该会制作一部包含视频和第一个音频流的新电影。要使用第二个音频流,请将 -map 0:1 更改为 -map 0:2。使用 -vcodec 和 -acodec 的复制,您可以复制流而无需重新编码。

答案3

如果你有 Windows 机器。使用虚拟配音模式,然后选择 streams->stream list 并禁用音频流并添加自定义音轨,选择 video->direct stream copy 和 last file->save as avi。您可以准备自己的音频编辑器,例如 Audacity。

对于Linux:

ffmpeg (这有命令行选项)

艾维德姆克斯

西内拉拉

dvd::翻录

相关内容