ffmpeg 过滤时出错:无法分配内存

ffmpeg 过滤时出错:无法分配内存

我使用 Plex 作为我的 DVR,并且我有一个使用 ffmpeg 将录音转换为标准格式并减小大小的过程。我最近收到以下错误:

Error while filtering: Cannot allocate memory
Failed to inject frame into filter network: Cannot allocate memory
Error while processing the decoded data for stream #0:0
[aac @ 0x55b1c3edd7c0] Qavg: 388.931
[aac @ 0x55b1c3edd7c0] 2 frames left in the queue on closing
Conversion failed!

这是它使用的命令:

ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i /media/video.ts -max_muxing_queue_size 8000 -map 0:0 -c:v:0 hevc_vaapi -vf fps=25,scale_vaapi=format=p010 -b:v 4147200 -map 0:1 -c:a:0 aac -b:a 384000 -map_metadata:g -1 -metadata JBDONEVERSION=1 -metadata JBDONEDATE=2021-12-23T23:57:44.168Z -map_chapters 0 /temp/video-IYU7Rix9M.mkv

我有一台坚固的机器,配备 i7 第 9 代处理器、32GB RAM 和充足的存储空间。

编辑:添加其他信息,还有其他有帮助的吗?

视频文件为:.ts 编解码器为:mpeg2video 文件大小:1-3GB

在我处理广告以缩小/标准化它们之前,Plex 会删除它们。

答案1

感谢用户@Jackdaw,我发现是 ffmpeg 命令的一部分将帧速率降低到了 25。我修改了命令以删除 fps=25,现在就可以正常工作了。

成功处理它们的命令是:

ffmpeg -hwaccel vaapi -hwaccel_device /dev/dri/renderD128 -hwaccel_output_format vaapi -i /media/video.ts -max_muxing_queue_size 8000 -map 0:0 -c:v:0 hevc_vaapi -vf scale_vaapi=format=p010 -b:v 4147200 -map 0:1 -c:a:0 aac -b:a 384000 -map_metadata:g -1 -metadata JBDONEVERSION=1 -metadata JBDONEDATE=2021-12-23T23:57:44.168Z -map_chapters 0 /temp/video-IYU7Rix9M.mkv

相关内容