如何使用基于ffmpeg的Intel QSV记录屏幕

时间:2018-07-18 02:11:20

标签: video ffmpeg

我想用ffmpeg录制屏幕。
我以正常的方式成功了。
ffmpeg -f gdigrab -framerate 30 -draw_mouse 1 -i desktop -c:v h264 -r 30 -preset ultrafast -tune zerolatency -pix_fmt yuv420p "record.mp4"

但是我想现在使用GPU记录我的屏幕。
我正在尝试在ffmpeg上使用Intel QSV。
ffmpeg -f gdigrab -framerate 30 -draw_mouse 1 -i desktop -c:v h264_qsv -r 30 -tune zerolatency -pix_fmt yuv420p "record.mp4"

它不起作用并显示:
[h264_qsv @ 0000000000479080] Error initializing the encoder: invalid video parameters (-15) Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height 我不知道发生了什么。

我正在尝试简单的方法。
ffmpeg -i test_input.mp4 -c:v h264_qsv -preset:v faster test_output.mp4
它也不起作用。

我的计算机信息:
宏cer笔记本电脑:TravelMate P243-MG
操作系统:Windows 7 64bits
CPU:Intel i5-3210M
显卡:Nvidia GT-630M

提前谢谢!

2 个答案:

答案 0 :(得分:0)

如输出所示,必须设置 宽度 高度 。 另外, QSV 没有诸如-tune zerolatency之类的选项,并且-pix_fmt yuv420p QSV 可能无效。
只需在这里尝试。


$ ffmpeg -f gdigrab -framerate 30 -i desktop -an -c:v h264_qsv -video_size 640x480 output.mp4

答案 1 :(得分:0)

这次晚会很晚。 但是,您似乎在NVidia卡上使用了Intel QSV。 硬件编码将处理过程从cpu转移到了gpu-因此必须与您的硬件相匹配。

看看https://trac.ffmpeg.org/wiki/Capture/Desktop,它建议使用 “ -c:v h264_nvenc -qp 0”而不是“ -c:v h264_qsv”