在一项非科学的测试中,我使用 docker ffmpeg 镜像转换了相同的 15 秒示例 mkv 文件 3 次(仅使用完全相同的设置运行相同的命令三次)。
使用的命令:
OS X:
ffmpeg -loglevel panic -y -i bpsample.mkv -t 15 -c:v hevc -an time1.mkv
Docker command:
docker run -v $PWD:/tmp jrottenberg/ffmpeg:ubuntu -stats -loglevel panic -y -i /tmp/bpsample.mkv -c:v hevc -t 15 /tmp/bp2.mkv
运行时如下:
15 seconds HEVC Native (OS X)
encoded 360 frames in 214.20s (1.68 fps), 4089.61 kb/s, Avg QP:29.61
encoded 360 frames in 215.98s (1.67 fps), 4089.61 kb/s, Avg QP:29.61
encoded 360 frames in 212.39s (1.70 fps), 4089.61 kb/s, Avg QP:29.61
15 seconds HEVC ffmpeg:ubuntu
encoded 360 frames in 182.54s (1.97 fps), 3841.88 kb/s, Avg QP:30.23
encoded 360 frames in 180.30s (2.00 fps), 3841.88 kb/s, Avg QP:30.23
encoded 360 frames in 177.16s (2.03 fps), 3841.88 kb/s, Avg QP:30.23
15 seconds HEVC ffmpeg:alpine
encoded 360 frames in 361.50s (1.00 fps), 3843.88 kb/s, Avg QP:29.81
encoded 360 frames in 376.31s (0.96 fps), 3843.88 kb/s, Avg QP:29.81
encoded 360 frames in 376.07s (0.96 fps), 3843.88 kb/s, Avg QP:29.81
为什么 alpine 镜像的运行速度比 ubuntu 镜像慢?此外,为什么 ubuntu 镜像在 OS X 上有了虚拟化层,却比在 OS X 上本机运行的速度更快呢?
答案1
Alpine 使用不同的 libc 实现,这可能会导致性能差异,请参阅为什么 alpine Docker 镜像比 ubuntu 镜像慢 50% 以上?了解更多信息。