python小工具------将H264/H265码流文件转为一帧一帧的JPEG文件

Posted 菠萝印象威

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python小工具------将H264/H265码流文件转为一帧一帧的JPEG文件相关的知识,希望对你有一定的参考价值。

一.功能

输入H264/H265码流路径,此脚本可以将对应的码流转为一帧一帧的JPEG文件,并保存到指定路径。

二.具体实现

import av
import sys
 
def h265ToJpg_demo():
	inputFileName = "D://Testpython//test.h265"
 	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("D://Testpython//output//frame-%04d.jpg" % frame.index)
 
def main():
    h265ToJpg_demo()

if __name__ == "__main__":
    sys.exit(main())

注意:
1.需要先安装ffmpeg和pyav库。
2.ffmpeg可以直接从网上下载,然后设置系统环境变量(右击电脑->属性->高级系统设置->环境变量->系统环境变量->点击Path->编辑->将安装的ffmpeg的bin路径填写进去->确定保存)
3.安装pyav库
python -m pip install av -i https://pypi.tuna.tsinghua.edu.cn/simple/

三.实例演示

1.在D盘创建Testpython目录,在目录下放入test.h265,创建output文件夹

2.执行脚本

3.进入output目录查看jpeg图,发现h265码流转换成1帧1帧的jpeg

以上是关于python小工具------将H264/H265码流文件转为一帧一帧的JPEG文件的主要内容,如果未能解决你的问题,请参考以下文章

Nodejs将h264/h265转码成mp4或某一帧图片

什么是H.265?什么是H264?两者有什么区别

ubuntu下播放h264,h265文件

ubuntu下播放h264,h265文件

H264/H265 Nal Unit Header

流媒体开发—H.264/H.265裸流文件推流