我在上传到我的网站时进行了2次编码。
不幸的是,当用户上传6个音频频道.mkv文件(5.1环绕声)时,ffmpeg会发出以下错误:
Resampling with input channels greater than 2 unsupported.
我正在运行最新版本的ffmpeg。做-ac 6
代替通常的- ac 2
进行编码,但它只会创建一个包含无用数据的更大文件,并在已经很长的文件处理脚本中创建另一个步骤,我宁愿避免修改转换命令。
我能做些什么让-ac 2
真正起作用吗?
答案 0 :(得分:1)
这是当前ffmpeg的已知错误/限制。
根据我的经验,我得出的结论是单靠ffmpeg无法完成。
您必须单独转码音频/视频。
1)从源影片中提取.wav文件
2)使用Audacity等音频编辑工具重新采样为2ch立体声
3)编码音频流
3)转码视频流
4)mux音频/视频到目标格式
答案 1 :(得分:0)
我有一个脚本,可以改进 首先尝试使用标签转换为mp3,如果它们最多2个chanel,则可以使用 如果他们是两个频道,我使用转换为mp3立体声的ffmpeg
#!/bin/bash
FLAC="${1}"
MP3="${FLAC%.flac}.mp3"
[ -r "${FLAC}" ] || { echo can not read file \"${FLAC}\" >&1 ; exit 1 ; } ;
# Save meta information
metaflac --export-tags-to=- "${FLAC}" | sed 's/=\(.*\)/="\1"/' >tmp.tmp
cat tmp.tmp
. ./tmp.tmp
rm tmp.tmp
# try to save meta info and convert to mp3 format
flac -dcs "${FLAC}" | lame -b 192 -h --tt "${Title}" \
--tn "${Tracknumber}" \
--tg "${Genre}" \
--ty "${Date}" \
--ta "${Artist}" \
--tl "${Album}" \
--add-id3v2 \
- "${MP3}"
# if fail do not use saved meta info
if [ $? -eq 1 ]; then
ffmpeg -i "${FLAC}" -vcodec copy -acodec libmp3lame -ab 192k -ar 48000 -async 48000 -ac 2 "${MP3}"
fi
答案 2 :(得分:0)
最近增加了一个“amerge”模块。
答案 3 :(得分:0)