首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ffmpeg "filtergraph join“,使用通道副本并保留输入通道配置(s32_le格式)

ffmpeg "filtergraph join“,使用通道副本并保留输入通道配置(s32_le格式)
EN

Stack Overflow用户
提问于 2020-04-27 05:41:01
回答 1查看 154关注 0票数 1

我正在使用的命令如下所示,使用该命令我将获得8通道output.wav。

代码语言:javascript
复制
ffmpeg.exe    -i one.wav -i two.wav -i three.wav -i four.wav \
-i five.wav -i six.wav -i seven.wav -i eight.wav \
-filter_complex '[0:0][1:0][2:0][3:0][4:0][5:0][6:0] \
[7:0]join=8:channel_layout=octagonal'  output.wav

所有的输入文件one.wav,two.wav等eight.wav都是32 one,s32le和一个通道。但是,产生的输出是s16le,32 but的output.wav。

我可以用下面的命令输出s32le,

代码语言:javascript
复制
ffmpeg.exe -i one.wav -i two.wav -i three.wav -i four.wav \
-i five.wav -i six.wav -i seven.wav -i eight.wav \
-filter_complex '[0:0][1:0][2:0][3:0][4:0][5:0][6:0] \
[7:0]join=8:channel_layout=octagonal'  -acodec pcm_s32le output.wav

但是,上面的命令似乎完成了从s16_le到s32_le的转换(即one.wav与output.wav first通道不完全匹配)。然而,我想要的是直接从输入通道复制数据,因为所有输入文件的音频格式都与输出文件通道的预期音频格式(output.wav)相同

有没有办法在pcm_s32le上指示filter_graph待办事项的处理?

下面是日志链接,日志级别设置为debug,https://pastebin.com/ms4x1fLz

代码语言:javascript
复制
MediaInfo.exe one.wav
General
Complete name                            : one.wav
Format                                   : Wave
File size                                : 6.50 MiB
Duration                                 : 53 s 280 ms
Overall bit rate mode                    : Constant
Overall bit rate                         : 1 024 kb/s

Audio
Format                                   : PCM
Format settings                          : Little / Signed
Codec ID                                 : 1
Duration                                 : 53 s 280 ms
Bit rate mode                            : Constant
Bit rate                                 : 1 024 kb/s
Channel(s)                               : 1 channel
Sampling rate                            : 32.0 kHz
Bit depth                                : 32 bits
Stream size                              : 6.50 MiB (100%)
EN

回答 1

Stack Overflow用户

发布于 2020-04-29 03:04:58

我认为您使用Audacity进行比较得出了错误的结论。您的命令不应该使用-acodec pcm_s32le进行s16转换。您可以通过将-loglevel debug添加到命令并参考日志中的auto_resampler行来进行检查。

输入和输出应该匹配。使用hash muxer验证:

代码语言:javascript
复制
ffmpeg -loglevel error -i one.wav -c:a copy -f hash -
SHA256=e56af84aea634ba4686348a90b657e1536610bf977b3604a9eb5b2901ccdeea3

ffmpeg -loglevel error -i output.wav -af "channelsplit=channel_layout=octagonal:channels=FL" -c:a pcm_s32le -f hash -
SHA256=e56af84aea634ba4686348a90b657e1536610bf977b3604a9eb5b2901ccdeea3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61448475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档