使用此命令
for file in *.flac; do \
ffmpeg -i $file \
-codec:a libmp3lame -qscale:a 6 \
"${file%.*}.mp3"; \
done
我将 flac 文件转换为 mp3。但我收到以下消息:
[swscaler @ 0x55b43902b900] 使用了弃用的像素格式,请确保正确设置范围
[mp3 @ 0x55b438d08d00] 对于无法有效支持的复用器而言,帧速率过高。
请考虑指定较低的帧速率、不同的复用器或 -vsync 2
flac 文件有一个 1976x1772 像素的嵌入式 jpg 封面。也许这与封面有关?如果有人能帮我找出这条消息的含义,我会非常高兴。
谢谢约翰
答案1
FFmpeg 会将封面图片等附加图片视为常规流,其 MP3 复用器默认为恒定帧速率,这会导致帧重复。解决方案是将视频同步方法更改为直通,因此
for file in *.flac; do \
ffmpeg -i $file \
-vsync 0 -codec:a libmp3lame -qscale:a 6 \
"${file%.*}.mp3"; \
done
答案2
公开说明:当-c:a libmp3lame -q:a 5
输入速度为 320kb/s(降至质量 5 ~130kb/s)时,我注意到 FFmpeg(版本 4.3.1,构建于 20200726)将高效的 20KB JPEG 放大为浪费的 300KB PNG。我预期的是纯文本,这在这种情况下可以说是更合理的默认设置。解决方案是指定只-c:v copy
执行此操作或-vn
完全排除图像。
答案3
我一直在使用类似你的产品,没有任何问题,这是我使用的线路:
find -name "*.${format}" -exec bash -c 'ffmpeg -i "{}" -y -vsync 0 -c:v copy -acodec libmp3lame -ab '${BITRATE}'k "${0/.'${format}'}.mp3"' {} \;
我制作了一个小型 bash 脚本来更轻松地处理我的媒体...也许你想看看 https://github.com/surtarso/bash-media-manager