使用 ffmpeg 将 flac 转换为 mp3 会导致警告“对于无法有效支持的复用器来说,帧速率非常高”。

使用 ffmpeg 将 flac 转换为 mp3 会导致警告“对于无法有效支持的复用器来说,帧速率非常高”。

使用此命令

    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

相关内容