nvidia GPU中从图像到mp4的FFMPEG视频

nvidia GPU中从图像到mp4的FFMPEG视频,ffmpeg,nvenc,cuvid,Ffmpeg,Nvenc,Cuvid,我正在尝试使用1070ti nvidia cuda电源对从.jpg图像创建的h264.mp4视频进行编码,每个图像之间有一个交叉淡入淡出过渡。 我可以使用标志-c:v h264_nvenc在GPU中渲染视频,我看到GPU编码中有一个短的峰值,但是由于计算机CPU高负载的长时间,我想准备转换图像。但是,由于-filter_复杂,它在cpu/ram上进行图像准备,速度非常慢。 这项工作: ffmpeg.exe, -y, -loop, 1, -t, 2.5, -i, 1565957420594_la

我正在尝试使用1070ti nvidia cuda电源对从.jpg图像创建的h264.mp4视频进行编码,每个图像之间有一个交叉淡入淡出过渡。 我可以使用标志-c:v h264_nvenc在GPU中渲染视频,我看到GPU编码中有一个短的峰值,但是由于计算机CPU高负载的长时间,我想准备转换图像。但是,由于-filter_复杂,它在cpu/ram上进行图像准备,速度非常慢。 这项工作:

ffmpeg.exe, -y, 
-loop, 1, -t, 2.5, -i, 1565957420594_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565957453659_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565957487743_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565957525280_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565957587308_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565957644898_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565957859119_labeled.jpg, 
-loop, 1, -t, 2.5, -i,1565959133561_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565959412948_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565959501884_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565959755432_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565959882380_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565960023185_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565960157174_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565960683303_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565961151548_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565961230278_labeled.jpg, 
-loop, 1, -t, 2.5, -i, 1565961671766_labeled.jpg, 
-loop, 1, -t, 2.5, -i, final.jpg, 
-loop, 1, -t, 2.5, -i, final.jpg, 
-c:v, h264_nvenc, -preset, fast, 
-filter_complex, [1]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+0.5/TB[f0];
[2]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+1.0/TB[f1];
[3]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+1.5/TB[f2];
[4]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+2.0/TB[f3];
[5]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+2.5/TB[f4];
[6]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+3.0/TB[f5];
[7]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+3.5/TB[f6];
[8]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+4.0/TB[f7];
[9]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+4.5/TB[f8];
[10]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+5.0/TB[f9];
[11]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+5.5/TB[f10];
[12]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+6.0/TB[f11];
[13]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+6.5/TB[f12];
[14]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+7.0/TB[f13];
[15]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+7.5/TB[f14];
[16]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+8.0/TB[f15];
[17]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+8.5/TB[f16];
[18]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+9.0/TB[f17];
[19]fade=d=0.5:t=in:alpha=1,setpts=PTS-STARTPTS+9.5/TB[f18];
[0][f0]overlay[bg1];
[bg1][f1]overlay[bg2];
[bg2][f2]overlay[bg3];
[bg3][f3]overlay[bg4];
[bg4][f4]overlay[bg5];
[bg5][f5]overlay[bg6];
[bg6][f6]overlay[bg7];
[bg7][f7]overlay[bg8];
[bg8][f8]overlay[bg9];
[bg9][f9]overlay[bg10];
[bg10][f10]overlay[bg11];
[bg11][f11]overlay[bg12];
[bg12][f12]overlay[bg13];
[bg13][f13]overlay[bg14];
[bg14][f14]overlay[bg15];
[bg15][f15]overlay[bg16];
[bg16][f16]overlay[bg17];
[bg17][f17]overlay[bg18];
[bg18][f18]overlay[v], 
-map, [v], -movflags, +faststart, output.mp4
我试图在GPU中完成所有工作,理论上,我可以在每个-I标记中使用“-hwaccel cuvid-c:v mjpeg_cuvid”对GPU内存中的所有图像进行编码。我收到以下错误:

[mjpeg_cuvid @ 00000000024ef980] ignoring invalid SAR: 0/0
Impossible to convert between the formats supported by the filter 'graph 0 input from stream 1:0' and the filter 'auto_scaler_0'
Error reinitializing filters!
Failed to inject frame into filter network: Function not implemented
Error while processing the decoded data for stream #0:0
有没有办法在GPU中加载应用了“淡入淡出”标志的图像


提前谢谢

我有一个类似的问题,但我只是将帧缝合在一起(帧之间没有过渡),并添加“-hwaccel cuvid-c:v mjpeg_cuvid”标志为我解决了这个问题。对我有效的完整命令是:
ffmpeg-vsync0-hwaccel cuvid-c:vmjpeg\u cuvid-framerate 29.97-i dji\u 0099%04d.jpg-c:vh264\u nvenc output2.mp4