我正在尝试将 []byte 对象转换为图像并将其保存为 Golang 中的 jpeg。我尝试使用Decode图像功能,但它总是返回<nil>。
func saveFrames(imgByte []byte) {
img, _, _ := image.Decode(bytes.NewReader(imgByte))
out, err := os.Create("./img.jpeg")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
err = jpeg.Encode(out, img)
if err != nil {
fmt.Println(err)
os.Exit(1)
}
}
Run Code Online (Sandbox Code Playgroud) 我的本地磁盘上有一个视频文件,我想从中创建一个 rtsp 流,我将在我的一个项目中使用它。一种方法是从 vlc 创建一个 rtsp 流,但我想用代码来做(python 会更好)。我已经尝试过这样的 opencv 的 VideoWritter
import cv2
_dir = "/path/to/video/file.mp4"
cap = cv2.VideoCapture(_dir)
framerate = 25.0
out = cv2.VideoWriter(
"appsrc ! videoconvert ! x264enc noise-reduction=10000 speed-preset=ultrafast tune=zerolatency ! rtph264pay config-interval=1 pt=96 ! tcpserversink host=127.0.0.1 port=5000 sync=false",
0,
framerate,
(1920, 1080),
)
counter = 0
while cap.isOpened():
ret, frame = cap.read()
if ret:
out.write(frame)
print(f"Read {counter} frames",sep='',end="\r",flush=True)
counter += 1
if cv2.waitKey(1) & 0xFF == ord("q"):
break
else:
break
cap.release()
out.release()
Run Code Online (Sandbox Code Playgroud)
但是当我像这样在 vlc 上流式传输它时
vlc …