gpt4 book ai didi

ffmpeg 无法在 mp4 文件中重新保存一个 channel

转载 作者:行者123 更新时间:2023-12-04 23:10:14 26 4
gpt4 key购买 nike

我有一个带有两个 channel 的 mp4 音频文件:左声道和右声道,我需要将唯一的一个(比如说右)声道保存到另一个文件中。使用 ffmpeg我可以轻松地以 wav 格式执行此操作,但将其保存为 mp4 格式会给我带来麻烦。我能够做到这一点,但生成的文件与源文件的大小相同。当从其中删除一个 channel 时,wav 文件会变小。是否可以使单 channel mp4 文件比源文件小?
到目前为止,我已经尝试了很多方法,其中一些工作组合是:

ffmpeg -i input.mp4 -map_channel 0.0.1 right.mp4
下一条命令给出错误

Unsupported channel layout "1 channels (FR)" Error initializing outputstream 1:0 -- Error while opening encoder for output stream#1:0 - maybe incorrect parameters such as bit_rate, rate, width or height

ffmpeg -y -i input.mp4 -filter_complex "[0:a]channelsplit=channel_layout=stereo[left][right]" -map [left] _.wav -map [right] right.mp4
到 wav 文件的相同转换工作正常,但进一步转换回 mp4 会导致相同的错误。
我还尝试使用 vlc 将只有右声道的 wav 文件转换回 mp4但它会生成一个大小等于源 mp4 文件的文件。

最佳答案

编辑:我最初的回答是错误的。这是正确的做法。
错误说明了一切:

Unsupported channel layout "1 channels (FR)"
channelsplit过滤器显然正在广播您选择的 channel 的名称,并且音频编码器知道 channel 名称(FR)并且没有仅属于FR channel 的单声道布局。一个简单的解决方法是使用 -ac 1将其重新标记为“单声道”:
ffmpeg -y -i input.mp4 \
-af "channelsplit=channel_layout=stereo:channels=FR" \
-ac 1 right.mp4
话虽如此,这应该与 -map_channel 0.0.1 的第一种方法相同。 ,并且您可能不会观察到原始立体声版本的文件大小有任何(实质性?)变化,这可能是因为 AAC 编解码器可以非常有效地识别左右声道的相同性和编码。
MP4 格式不允许您拥有单声道音频。您需要将所需的源音频 channel 映射到左右声道上具有相同信号的立体声:
ffmpeg -i input.mp4 -map_channel 0.0.1 -ac 2 right.mp4
-ac 2基本上重复 0.0.1向左和向右的源 channel

关于ffmpeg 无法在 mp4 文件中重新保存一个 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71264022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com