我可以发出这个命令:
ffmpeg -i input.mp3 -acodec alac -ab 128k -ar 48000 -ac 2 -y output.m4a
Run Code Online (Sandbox Code Playgroud)
创建一个 m4a 文件。
但是当我发出这个命令时
ffmpeg -i input.mp3 -acodec alac -ab 128k -ar 48000 -ac 2 -y output.aac
Run Code Online (Sandbox Code Playgroud)
ffmpeg 抛出一个错误说
无法为输出文件 #0 写入标头(编解码器参数不正确?)。
还有,m4a文件的大小真的比原文件大了将近5.8倍,这绝对不是我想要的,也是我想转换成AAC的原因。
我有大量的 .MKV 视频文件,它们似乎都以非常低的音量播放 - 我最终不得不将电视一直开到最大才能听到它们,当我切换到另一个频道时,这真的很烦人唤醒死者,因为它太吵了。
我正在寻找的是一种增加音量的命令行方法(这样我可以快速地在所有它们上运行它),无论特定文件中使用的音频编解码器如何,它都有望工作。(虽然我不介意硬编码输出音频)。
作为参考,我在我的服务器上使用 Ubuntu 9.04,并且在 Mac Mini 上使用 Boxee 播放文件,但音量问题在 Windows 上也是一样的。
TL;DR 使用 ffpmpeg 在单行中使用 Loudnorm 2pass 的示例(ffmpeg-normalize 是单线程/进程,我无法将其他 ffmpeg 选项组合到其中)
关于 Loudnorm 的例子并不多,因为它对 ffmpeg 来说相对较新,我已经使用 ffmpeg 10 年左右了。然而我是 Loudnorm 的新手
我读了:
http://k.ylo.ph/2016/04/04/loudnorm.html
这很有帮助。然而,我试图将多个 ffmpeg 条目合并到 1. 使用 ffmpeg-normalize (python)库也将您限制为单个线程/进程。这很慢
对于 ffmpeg x264 的 2 次传递,您可以简单地执行以下操作:
ffmpeg -y -i $FILE -c:v libx264 -b:v 4000k -pass 1 -c:a aac -b:a 256k -f mkv /dev/null && \
ffmpeg -i $FILE -c:v libx264 -b:v 4000k -pass 2 -c:a aac -b:a 256k $FILE.mkv
Run Code Online (Sandbox Code Playgroud)
不过,对于 Loudnorm 来说似乎并不存在。我根本看不出有什么办法可以通过一次和两次通过来做到这一点?
目前我正在编码视频,然后规范化音频,最后从文件中剥离元数据和章节数据(如果存在)(无论是否存在)
这会创建 3 个废弃文件(包括原始文件)
能够在一行中执行 Loudnorm …
我有一堆 .mkv 视频文件,其中的音频音量非常低。
如何在 .mkv 文件中永久调高音量?最好使用无损方法(如果可能的话?)。
是的,我知道我可以将扬声器调到最大音量,但是如果我以正常的音量观看其他视频,那么我的扬声器会杀死我!
我有一堆视频文件,在一些视频中声音很大,在其他视频中 -不是。因此,当用户在播放列表中观看这些视频时,她必须更改播放器的音量。我想在每个视频中调平响度,所以到处都是一样的。我该怎么做?
这些视频包含人声。所有的声音流都是MPEG Layer-3格式。我会将它们上传到 Youtube,所以玩播放器的设置没有帮助。
我遇到了这个答案
然而,这涉及对音频流进行转码。我知道程序喜欢
可以无损地调节音量,也就是说无需对文件进行转码。FFmpeg 可以做到这一点吗?