小编Spe*_*tra的帖子

如何使用 ffmpeg GPU 编码将视频帧保存到内存?

我正在尝试从视频中提取帧并将它们保存到内存(RAM)中。使用CPU编码,我没有任何问题:

ffmpeg -i input -s 224x224 -pix_fmt bgr24 -vcodec rawvideo -an -sn -f image2pipe -
Run Code Online (Sandbox Code Playgroud)

但当我尝试使用某些 NVIDIA GPU 编码时,我总是会得到嘈杂的图像。我尝试使用不同的命令,但在 Windows 和 Ubuntu 上结果始终相同。

ffmpeg -hwaccel cuda -i 12.mp4 -s 224x224 -f image2pipe - -vcodec rawvideo
Run Code Online (Sandbox Code Playgroud)

将 JPG 保存到磁盘上后,我没有任何问题。

ffmpeg -hwaccel cuvid -c:v h264_cuvid -resize 224x224 -i {input_video} \
     -vf thumbnail_cuda=2,hwdownload,format=nv12 {output_dir}/%d.jpg
Run Code Online (Sandbox Code Playgroud)

我有用于测试这些命令的 python 代码:

import cv2
import subprocess as sp
import numpy

IMG_W = 224
IMG_H = 224
input = '12.mp4'

ffmpeg_cmd = [ 'ffmpeg','-i', input,'-s', '224x224','-pix_fmt', 'bgr24',  '-vcodec', 'rawvideo', …
Run Code Online (Sandbox Code Playgroud)

python video jpeg ffmpeg nvidia

3
推荐指数
1
解决办法
4472
查看次数

标签 统计

ffmpeg ×1

jpeg ×1

nvidia ×1

python ×1

video ×1