我有很多视频文件(超过 1000 个)需要转换为 H.265/HVEC。这些视频的长度从几分钟到几个小时不等。大多数都是 1080p。我计划晚上用 ffmpeg 在笔记本电脑上批量处理它们。这是一款相当高端的戴尔 XPS 15,具有以下规格:
- 64GB DDR4-2666MHz,2x32G
- NVIDIA GeForce GTX 1650 4GB GDDR5
- 2TB PCIe 固态硬盘
- 第九代英特尔酷睿 i9-9980HK(16 MB 缓存,8 核)
- Xubuntu 20.04
我担心的是,这么多的视频转换是否会对我的电脑造成太大的磨损,最终我的电脑硬件会烧坏。最后,我有两个问题:
- 在我的笔记本电脑上进行这么多的视频转换安全吗?
- 如果是这样,我应该采取什么措施来尽量减少机器的磨损(ffmpeg 标志、关闭其他应用程序、在笔记本电脑运行时打开风扇等)?
我很感激社区能为我提供的任何帮助。谢谢!
答案1
减少热量
请注意,电子设备可能会以不可预测的方式出现故障。有一个经验法则工作温度每升高10°C,电子元件的寿命就会缩短一半。
笔记本电脑经常有过热的问题,但是,增加一个风扇永远不是一个坏主意。
您可以随时使用 进行编码时检查系统温度sensors
。
如果您真的担心过早出现故障,您可以结合使用nice
和cpulimit
ffmpegs-threads
选项来限制 CPU 负载:
nice -10 cpulimit -l 60 -- ffmpeg -i in.mkv -c:v libx265 -threads 2 out-h265.mkv
您还应该使用 ffmpeg 的 GPU 加速,这将显著提高编码速度并减轻 CPU 的负载。
批量转换:
虽然这不在你的问题范围内,但我还是会添加它,因为它可能会有所帮助。我目前用于批量转换的是以下内容:
find . -type f \( -name "*.avi" -o -name "*.mp4" -o -name "*.mkv" \) -not -name "*265*" -size +2400M -size -2700M -execdir bash -c 'if [ ! -f fail ]; then conv_h265 {} || touch fail; fi' \;
此代码片段将找到任何尚未转换为 h265 且没有失败的视频(按照我的命名约定),并将文件名传递给我的转换脚本。
如果因错误退出,它将fail
向文件夹添加一个名为的文件ffmpeg
,以便更轻松地找到需要修改某些参数的文件。请注意,有时错误还是会出现,这就是为什么我总是在删除原始文件之前手动检查输出文件是否完整。
这是我的转换脚本,它还将复制所有音频和字幕流并根据我的约定重命名:
name="${1%.*}"
ext="${1##*.}"
ffmpeg -i $1 -c:v libx265 -vtag hvc1 -map 0 -c:a copy -c:s copy -n $name-h265.mkv
请注意,我在已退役的企业服务器上运行编码,这些服务器上的热量不是问题。