上一篇我们历尽千辛万苦完成了PyAV的安装,这一篇我们来小试牛刀。

思路:通过PyAV来把海思Hi3516编码处理器编码的h.264裸码流中的每一帧都转换为一张jpeg编码的图片,然后将这些jpg图像帧保存为jpg图片序列。

我们创建一个helloPyAV的目录并在其中放入我们要测试的视频文件,如果手头没有h. 264编码的视频文件可以在这里下载:

http://www.live555.com/liveMedia/public/264/

同样,这个网站也有h.265编码的测试文件:

http://www.live555.com/liveMedia/public/265/

准备好测试视频文件后我们在当前目录下创建一个output目录用来存放产生的Jpeg图片。

最后我们在当前目录下创建一个名为helloPyAV.py的python源码文件并输入(拷贝)下面的代码:

import av
import sysdef 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())

运行结果如下所示:

Stream #0: not enough frames to estimate rate; consider increasing probesize
container: <av.InputContainer 'input.h264'>
container.streams: <av.container.streams.StreamContainer object at 0x00CFA378>
container.format: <av.ContainerFormat 'h264'>
process frame: 0000 (width: 1280, height: 720)
deprecated pixel format used, make sure you did set range correctly
process frame: 0001 (width: 1280, height: 720)
process frame: 0002 (width: 1280, height: 720)
process frame: 0003 (width: 1280, height: 720)
process frame: 0004 (width: 1280, height: 720)
。。。。。。
process frame: 0318 (width: 1280, height: 720)
process frame: 0319 (width: 1280, height: 720)
process frame: 0320 (width: 1280, height: 720)
process frame: 0321 (width: 1280, height: 720)

然后output目录下就产生了每一帧对应的Jpeg图片


E:\zdwork\pyAvTest\helloPyAV>ls output
frame-0000.jpg  frame-0046.jpg  frame-0092.jpg  frame-0138.jpg  frame-0184.jpg  frame-0230.jpg  frame-0276.jpg
frame-0001.jpg  frame-0047.jpg  frame-0093.jpg  frame-0139.jpg  frame-0185.jpg  frame-0231.jpg  frame-0277.jpg
frame-0002.jpg  frame-0048.jpg  frame-0094.jpg  frame-0140.jpg  frame-0186.jpg  frame-0232.jpg  frame-0278.jpg
frame-0003.jpg  frame-0049.jpg  frame-0095.jpg  frame-0141.jpg  frame-0187.jpg  frame-0233.jpg  frame-0279.jpg
frame-0004.jpg  frame-0050.jpg  frame-0096.jpg  frame-0142.jpg  frame-0188.jpg  frame-0234.jpg  frame-0280.jpg
frame-0005.jpg  frame-0051.jpg  frame-0097.jpg  frame-0143.jpg  frame-0189.jpg  frame-0235.jpg  frame-0281.jpg
frame-0006.jpg  frame-0052.jpg  frame-0098.jpg  frame-0144.jpg  frame-0190.jpg  frame-0236.jpg  frame-0282.jpg
frame-0007.jpg  frame-0053.jpg  frame-0099.jpg  frame-0145.jpg  frame-0191.jpg  frame-0237.jpg  frame-0283.jpg
frame-0008.jpg  frame-0054.jpg  frame-0100.jpg  frame-0146.jpg  frame-0192.jpg  frame-0238.jpg  frame-0284.jpg
frame-0009.jpg  frame-0055.jpg  frame-0101.jpg  frame-0147.jpg  frame-0193.jpg  frame-0239.jpg  frame-0285.jpg
frame-0010.jpg  frame-0056.jpg  frame-0102.jpg  frame-0148.jpg  frame-0194.jpg  frame-0240.jpg  frame-0286.jpg
frame-0011.jpg  frame-0057.jpg  frame-0103.jpg  frame-0149.jpg  frame-0195.jpg  frame-0241.jpg  frame-0287.jpg
frame-0012.jpg  frame-0058.jpg  frame-0104.jpg  frame-0150.jpg  frame-0196.jpg  frame-0242.jpg  frame-0288.jpg
frame-0013.jpg  frame-0059.jpg  frame-0105.jpg  frame-0151.jpg  frame-0197.jpg  frame-0243.jpg  frame-0289.jpg
frame-0014.jpg  frame-0060.jpg  frame-0106.jpg  frame-0152.jpg  frame-0198.jpg  frame-0244.jpg  frame-0290.jpg
frame-0015.jpg  frame-0061.jpg  frame-0107.jpg  frame-0153.jpg  frame-0199.jpg  frame-0245.jpg  frame-0291.jpg
frame-0016.jpg  frame-0062.jpg  frame-0108.jpg  frame-0154.jpg  frame-0200.jpg  frame-0246.jpg  frame-0292.jpg
frame-0017.jpg  frame-0063.jpg  frame-0109.jpg  frame-0155.jpg  frame-0201.jpg  frame-0247.jpg  frame-0293.jpg
frame-0018.jpg  frame-0064.jpg  frame-0110.jpg  frame-0156.jpg  frame-0202.jpg  frame-0248.jpg  frame-0294.jpg
frame-0019.jpg  frame-0065.jpg  frame-0111.jpg  frame-0157.jpg  frame-0203.jpg  frame-0249.jpg  frame-0295.jpg
frame-0020.jpg  frame-0066.jpg  frame-0112.jpg  frame-0158.jpg  frame-0204.jpg  frame-0250.jpg  frame-0296.jpg
frame-0021.jpg  frame-0067.jpg  frame-0113.jpg  frame-0159.jpg  frame-0205.jpg  frame-0251.jpg  frame-0297.jpg
frame-0022.jpg  frame-0068.jpg  frame-0114.jpg  frame-0160.jpg  frame-0206.jpg  frame-0252.jpg  frame-0298.jpg
frame-0023.jpg  frame-0069.jpg  frame-0115.jpg  frame-0161.jpg  frame-0207.jpg  frame-0253.jpg  frame-0299.jpg
frame-0024.jpg  frame-0070.jpg  frame-0116.jpg  frame-0162.jpg  frame-0208.jpg  frame-0254.jpg  frame-0300.jpg
frame-0025.jpg  frame-0071.jpg  frame-0117.jpg  frame-0163.jpg  frame-0209.jpg  frame-0255.jpg  frame-0301.jpg
frame-0026.jpg  frame-0072.jpg  frame-0118.jpg  frame-0164.jpg  frame-0210.jpg  frame-0256.jpg  frame-0302.jpg
frame-0027.jpg  frame-0073.jpg  frame-0119.jpg  frame-0165.jpg  frame-0211.jpg  frame-0257.jpg  frame-0303.jpg
frame-0028.jpg  frame-0074.jpg  frame-0120.jpg  frame-0166.jpg  frame-0212.jpg  frame-0258.jpg  frame-0304.jpg
frame-0029.jpg  frame-0075.jpg  frame-0121.jpg  frame-0167.jpg  frame-0213.jpg  frame-0259.jpg  frame-0305.jpg
frame-0030.jpg  frame-0076.jpg  frame-0122.jpg  frame-0168.jpg  frame-0214.jpg  frame-0260.jpg  frame-0306.jpg
frame-0031.jpg  frame-0077.jpg  frame-0123.jpg  frame-0169.jpg  frame-0215.jpg  frame-0261.jpg  frame-0307.jpg
frame-0032.jpg  frame-0078.jpg  frame-0124.jpg  frame-0170.jpg  frame-0216.jpg  frame-0262.jpg  frame-0308.jpg
frame-0033.jpg  frame-0079.jpg  frame-0125.jpg  frame-0171.jpg  frame-0217.jpg  frame-0263.jpg  frame-0309.jpg
frame-0034.jpg  frame-0080.jpg  frame-0126.jpg  frame-0172.jpg  frame-0218.jpg  frame-0264.jpg  frame-0310.jpg
frame-0035.jpg  frame-0081.jpg  frame-0127.jpg  frame-0173.jpg  frame-0219.jpg  frame-0265.jpg  frame-0311.jpg
frame-0036.jpg  frame-0082.jpg  frame-0128.jpg  frame-0174.jpg  frame-0220.jpg  frame-0266.jpg  frame-0312.jpg
frame-0037.jpg  frame-0083.jpg  frame-0129.jpg  frame-0175.jpg  frame-0221.jpg  frame-0267.jpg  frame-0313.jpg
frame-0038.jpg  frame-0084.jpg  frame-0130.jpg  frame-0176.jpg  frame-0222.jpg  frame-0268.jpg  frame-0314.jpg
frame-0039.jpg  frame-0085.jpg  frame-0131.jpg  frame-0177.jpg  frame-0223.jpg  frame-0269.jpg  frame-0315.jpg
frame-0040.jpg  frame-0086.jpg  frame-0132.jpg  frame-0178.jpg  frame-0224.jpg  frame-0270.jpg  frame-0316.jpg
frame-0041.jpg  frame-0087.jpg  frame-0133.jpg  frame-0179.jpg  frame-0225.jpg  frame-0271.jpg  frame-0317.jpg
frame-0042.jpg  frame-0088.jpg  frame-0134.jpg  frame-0180.jpg  frame-0226.jpg  frame-0272.jpg  frame-0318.jpg
frame-0043.jpg  frame-0089.jpg  frame-0135.jpg  frame-0181.jpg  frame-0227.jpg  frame-0273.jpg  frame-0319.jpg
frame-0044.jpg  frame-0090.jpg  frame-0136.jpg  frame-0182.jpg  frame-0228.jpg  frame-0274.jpg  frame-0320.jpg
frame-0045.jpg  frame-0091.jpg  frame-0137.jpg  frame-0183.jpg  frame-0229.jpg  frame-0275.jpg  frame-0321.jpg

Python解码H.264(二)——将海思处理器编码的H.264裸码流转换为jpg序列相关推荐

  1. PX2板实现H.264裸码流的解码

    2019独角兽企业重金招聘Python工程师标准>>> 之前已经有人尝试使用了PX2板实现H.264裸码流的解码,并且给了例程,不过楼主尝试时碰到了一点小问题,现在也是解决了,现在楼 ...

  2. QT5.6 MSVC编译器 实现-海康摄像头,获取H.264裸码流并通过libmp4V2实现MP4写封装生成MP4视频文件

    前言 当前,在国内安防领域,海康摄像头一直是受各个解决方案比较青睐的摄像头选择.本项目主要应用海康摄像头对桥梁道路车辆运行情况进行监控.当桥梁称重系统检测到车辆异常信号后,触发摄像服务程序,采集摄像头 ...

  3. 将h.264裸码流推送到RTMP服务器

    h.264裸码流的格式,参考"H.264-AVC-ISO_IEC_14496-10.pdf, page 211.",这个文档的下载地址:https://github.com/win ...

  4. Ubuntu 下ffmpeg安装说明、doc/examples编译运行、264裸码流解码

    1. 安装X264 git clone https://code.videolan.org/videolan/x264.git cd x264 ./configure --enable-shared ...

  5. 如何用海思HI3516DV300/3518EV200推流H.264

    一开始尝试用hi3518EV200, 后来为了给自己加难度, 就买了个hi3516的板子, 看看差异多大, 结论是, 不大... 前期准备: 你得有一个3516或者3518的开发板(淘宝有卖各种开发板 ...

  6. python基础(十二):字符字节编码解码

    基础(十二) 字符串概述 类型 编码架构 字符串存储 常用字符编码 ASCII latin-1 UTF-8(通用性更好) UTF-16 UTF-32 内置函数 ord() chr() str.enco ...

  7. (二)海思3519av100开发:开发板环境搭建

    海思文档+nfsAxe+SecureCRT 8.1破解版资源网盘链接提取码:pzxg 2 开发板环境设置 本文省去kernel.uboot.文件系统烧写步骤,详见海思文档. 工具:开发板.usb转串口 ...

  8. 海思处理器sensor驱动调用过程与源码解析与实战

    准备知识: 在mpp/sample/makefile.param /*gcc 的 -D选项作用要注意*/ CFLAGS += -Wall -g $(INC_FLAGS) -D$(HIARCH) -DH ...

  9. 海思NB-IoT芯片模块,海思处理器介绍

    Hi2115芯片: Hi2115是一种在蜂窝频率上工作的片上系统(SoC).它使用集成内存的片上应用程序处理器支持小占用的物联网应用程序,或者可以通信.TE与外部单片机通过多种数字接口. Hi2110 ...

最新文章

  1. POJ 1426 Find The Multiple
  2. samba服务器详解
  3. NLP之词向量:利用word2vec对20类新闻文本数据集进行词向量训练、测试(某个单词的相关词汇)
  4. mysql内外链接图_图解MySQL 内连接、外连接、左连接、右连接、全连接
  5. 动手造轮子:写一个日志框架
  6. mysql5.6.36源码安装_CentOS 7下rpm安装MySQL 5.6.36
  7. 7-7 12-24小时制 (15 分)
  8. 【干货】2021年重点行业薪酬趋势指南.pdf(附下载链接)
  9. 【My Sft】彩色图像分析软件V1.0.1.0
  10. Provisioning Services 7.8 入门系列教程之四 目标设备安装
  11. MySQL彻底卸载干净
  12. Android浏览器翻译功能调研
  13. 王者荣耀登录显示换服务器是不是封号,王者荣耀这么查看封号原因?千万不要这么做!...
  14. 计算机毕业设计ssm宠物寄存中心计时收费系统
  15. 联想昭阳E43闪屏|屏幕有亮线|问题交流QQ群群号
  16. 敏捷开发“松结对编程”系列之十二:L型代码结构(质量篇之一)
  17. Linux常用命令--解压缩
  18. Photoshop设计网站原型图
  19. EMUI/MIUI卸载系统预装软件,开启上帝模式无需ROOT权限
  20. 【06月05日】A股滚动市净率PB历史新低排名

热门文章

  1. Java环境安装和配置
  2. 让CyberArticle支持Firefox
  3. 华宇优家引入君子签电子合同,打造灵活用工数字化签署服务
  4. html和js实现文件上传功能
  5. Jetson Nano (八) PaddlePaddle 环境配置 PaddleHub—OCR测试
  6. 成功的秘密--隐姓的亿万富翁
  7. linux的lvcreate语句,lvcreate
  8. EXCEL2010教程(一)
  9. vim跳转到指定行或列
  10. matlab实现贝叶斯分类,朴素贝叶斯分类matlab实现