Scrcpy投屏发的H.264流包(屏幕状态),我用python拦截了怎么解码转为图片呢,我想用Scrcpy做个进行快速截图功能
这个图片时Scrcpy一个设备拦截的H.264流包(屏幕状态),
我建议是可以使用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())