从视频文件中提取音频的最佳方法是什么?


18

我是一个狂热的粉丝 手刹 。这是简单的缩影。选择视频文件(或DVD),选择预设,选择输出路径,然后单击“开始”。相对于内容的大小/质量,一定时间后,您将拥有一个非常完美的视频文件,适合您选择的媒体。

我一直在寻找音频转换器中的类似特性,更优选的是音频提取器(来自给定的视频文件)。我希望能够将视频文件拖到应用程序中,指定我希望AAC中的音频文件以给定的比特率,单击开始,然后让应用程序完成剩下的工作。

我并不反对使用Handbrake来满足转换方面的要求,只要事后的音频提取是一个简单的过程。关键是要采取尽可能少的步骤。

有小费吗?应用?想法?


Fission是一个很好的实用程序,用于从视频文件中提取音频数据,我已经准备好以旧式方式,逐个轨道,手动完成。不是我的偏好。之后我有了这个想法,但是不幸的是,似乎Fission没有AS词典。
Jason Salaz

@Jason考虑过一些UI脚本与Fission交谈?
Nathan Greenstein

当给定的应用程序没有字典时,这通常是原始的Applescript吗?单击名为“文件”的菜单。单击名为“保存”的菜单项。东西或多或少那样?
Jason Salaz

@Jason是的。但可能比手工操作更好,这取决于你计划通过多少计划。
Nathan Greenstein

我偶然发现了一个条目 手刹的常见问题解答 今天: I just want audio, not video. Can I do that? Not with HandBrake, no. You could just encode the video at a low resolution with a fast low quality encoder like ffmpeg, then extract the audio track. Or you could use OSEx 。不幸的是,它只是PPC。 Booooo!
Jason Salaz

Answers:


22

我终于找到了我需要的确切组合,我发现了它 ffmpeg的

我将稍微扩展这个问题并说明我已经在使用mp4包含的视频/音频,因此MP4视频(.m4v)和AAC音频(.m4a)。我绝对想要从视频中提取音频的原版。

首先,很容易安装诸如ffmpeg,mplayer,内置它们的东西以及类似的开源软件包。之间 Rudix 家酿 MacPorts的 和Fink(还有人甚至再使用fink吗?),第三方软件很容易安装。

所以,安装ffmpeg后,有了 ffmpeg 在命令行可以访问,我运行了这样的命令:

ffmpeg -i videofile.mp4 -vn -acodec copy audiotrack.m4a

ffmpeg的 : 命令。

-i videofile.mp4 :源视频文件。

-vn :不记录(不考虑)视频数据。

-acodec副本 :按原样复制音频源,这里是所有魔术的所在。 ffmpeg会将音频数据作为各种支持的编解码器写出,但是指定复制会导致流的逐位精确副本。再加上通过-vn禁用视频会让你在mp4容器内留下一个单独的音频轨道。

audiotrack.m4a :输出文件名。

我无法相信这样的事情如此困难和隐藏了这么长时间。

因为我总是打算从mp4容器/视频中删除aac音频数据,所以我写了一个快速的小脚本来完成它。

#!/bin/bash

INFILE="$1"
TMPOUTFILE="${INFILE%.*}"
OUTFILE="${TMPOUTFILE##*/}.m4a"

ffmpeg -i "${INFILE}" -vn -acodec copy "${OUTFILE}"

现在,我只是调用 rip_m4a_from_mp4 somevideofile.mp4 我留下了一个具有相同文件名的音频版本,以m4a结尾。

简单!对我来说无论如何。没有GUI,闪电般快,这只是命令行做得更好的事情之一。


可能,您可以替换 m4a 在5号线上 $2 并在命令行上指定新的扩展名。这样,如果您正在处理其他内容,并知道音频是什么,您可以指定它。我可以自己做,并将脚本名称更改为'rip_audio_from_video'。通用!
Jason Salaz

开始。 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 然后 brew install ffmpeg。现在按照上面的说明操作。
boyfarrell

Homebrew的主页是 brew.sh 。按照该页面上的说明进行操作(以防它们发生变化), brew install ffmpeg。然后是的,那么你可以按照我的步骤。
Jason Salaz

2
如果你 想要将音频重新编码为另一种格式, ffmpeg 可以在同一个命令中执行此操作。例如: ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 sound.mp3 catswhocode.com/blog/19-ffmpeg-commands-for-all-needs
alexw

1
@alexw确保你指定192k,而不是192.否则它将回退到128kbit / s编码。
smets.kevin

12

您可以直接在Finder中执行此操作,从Mac OS X 10.7(Lion)开始,如下所述 OSXDaily

简短的回答是,在Finder中选择一个或多个文件 CTRL - 点击并选择 服务 - >编码选定的视频文件

请注意,您可能需要 在“键盘”偏好设置面板中启用此服务

enter image description here


哇!很方便!使用Mac的另一个原因!
Javad Sadeqzadeh

在我的情况下,结果的大小 m4a 文件与使用相比 ffmpeg 超过3倍。可能是一个问题,特别是对于较大的文件。
Casimir

6

我会将电影拖入GarageBand。 GarageBand会将文件拆分为音频和视频,此时您可以删除视频轨道(只留下音轨)。

然后,您可以单击“共享”菜单中的“将歌曲发送到iTunes”选项(请参见图片)。然后,这将提供您要导出的各种格式。

enter image description here

最重要的是,这是免费的:)因为所有的Mac都配备了GarageBand。此外,它还允许您调整音频的各个方面,如速度和音量。

话虽如此,如果你想要一个真正的自动解决方案,并且在使用终端的命令行中感觉很舒服,请在评论中告诉我,我会想出一个允许你这样做的脚本。


我不打算这样做有一个原因(除非我错了,请随意纠正我):重新压缩。视频文件已经有大量压缩的音频数据,我希望尽可能保留原始音频数据。 Fission的杀手功能是“无损编辑和再出口”。甚至没有提到GarageBand对于这样的任务真的很慢:/。然而,对于完成这一主题的任务来说,这是一个很好的解决方案,所以我已经为你做了这个方面的一点工作。
Jason Salaz

4

Quicktime 7 将很容易地完成工作。

只需打开视频,然后转到 文件 > 出口 > 声音到AIFF / AU / Wave >选择你的路径,你就完成了! :)


看起来我可能需要找到我的Snow Leopard光盘......
Jason Salaz

@vxjasonxv你不必。您可以通过提供的链接下载..
nuc

哦谢谢!我并不认为这种联系实际上会以这种方式实质性。
Jason Salaz

1
我在Rob的回答中添加的相同陷阱是否适用于此处?我可以“保存音频”,但它已经被压缩了,理论上为了使用它,我必须再次重新压缩它,我宁愿不做。
Jason Salaz

4

QuickTime Player 10也能够导出音频(无需重新编码)。

选择 文件>出口>仅音频......

使用QuickTime Player 10.4在macOS 10.12 Sierra上测试。


1
但这会重新编码音频吗?
Jason Salaz

1
@JasonSalaz不,只是提取。这是恕我直言,一个更好的选择。它非常快速并保持质量。此外,您可以在以后随时重新编码。
Melebius

1
真棒。我的ffmpeg答案也只是提取,所以它可能只花费与QuickTime相同的时间。 ffmpeg的好处是它没有固有的UI负载权重,因此它无疑在1个文件中更快,在许多文件中指数级更快。但对于精通Automator / Applescripting的人来说,这是一个很好的答案,也许在命令行或shell脚本方面不太舒服。
Jason Salaz

0

我只需用大胆打开视频文件,然后导出音频。 我可以在导出期间设置导出的音频文件参数。


设置音频文件参数意味着重新编码音频。 Audacity是否有通过(未更改的提取)选项?
Jason Salaz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.