Scrcpy投屏发的H.264流包怎么解码转成图片

Scrcpy投屏发的H.264流包(屏幕状态),我用python拦截了怎么解码转为图片呢,我想用Scrcpy做个进行快速截图功能
这个图片时Scrcpy一个设备拦截的H.264流包(屏幕状态),

img

我建议是可以使用FFmpeg库来解码转为图片。首先,你需要安装FFmpeg库,然后使用FFmpeg库的API来解码H.264流包,最后将解码后的图片保存为图片文件即可。

这里这个笔记不知道对你解题是否有所帮助:https://www.codenong.com/16552107/

解码H.264流包并转换为图片可以使用FFmpeg库,你可以使用python来调用FFmpeg库的命令行工具来实现这个功能。

下面是一个示例代码,使用python的subprocess模块来调用FFmpeg命令行工具进行解码:

import subprocess

def decode_h264_to_image(h264_stream, output_file):
    # 使用 FFmpeg 解码 H.264 流并保存为图片
    cmd = ['ffmpeg', '-i', h264_stream, '-vframes', '1', output_file]
    subprocess.run(cmd, check=True)

这个函数将H.264流包作为第一个参数,并将其解码为图像并保存在第二个参数指定的文件中。

如果你的环境中没有安装 ffmpeg ,你需要先安装 ffmpeg 。

需要注意的是,在使用此代码之前,请确保你已经将H.264流保存到了文件中。

https://www.codenong.com/16552107/

将h.264裸码流转为图片实现代码。望采纳

import av
import sys
 
def h264ToJpg_demo():
    inputFileName = "input.h264"
    container = av.open(inputFileName)
    print("container:", container)
    print("container.streams:", container.streams)
    print("container.format:", container.format)
 
    for frame in container.decode(video = 0):
        print("process frame: %04d (width: %d, height: %d)" % (frame.index, frame.width, frame.height))
        frame.to_image().save("output/frame-%04d.jpg" % frame.index)
 
 
def main():
    h264ToJpg_demo()
 
 
if __name__ == "__main__":
    sys.exit(main())