我制作了jpeg解码器,但我没有实现重启标记逻辑.这就是我的程序无法处理某些图像的原因(例如用Photoshop保存的图像:文件 - >另存为 - > jpeg).我想实现重启标记逻辑,但没有详细的在线解释重启标记逻辑如何工作.请任何人都可以告诉我有关重启标记的更多信息,或者建议我在线资源,我可以在其中详细了解它.谢谢!
我正在尝试从视频中提取帧并将它们保存到内存(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)