音视频学习--H264解析渲染
一、H264文件获取
下载一段MP4文件,通过FFMPEG转换成MP4
ffmpeg -i Gravity.mp4 -vcodec h264 out_2.264
二、通过解析H264成帧,然后刷新
这里的环境是 MacOS + Python2.7 + openCV2
#!/usr/local/bin/python2.7
# -*- coding: utf-8 -*-
__author__ = 'qqvipfunction' import sys
import cv2
import os
import datetime #打印时间戳
def Log(str):
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f') + ": " + str) #cv2.waitKey ,填写0表示永久等待,正数表示等待多少毫秒,如果按键返回按键的值 if __name__ == '__main__':
h264_path = os.getcwd() + '/rsc/gravity/out.h264'
Log(h264_path) loop = True
frameCount = 0
cap = cv2.VideoCapture(h264_path)
while (cap.isOpened() and loop):
Log("frame " + str(frameCount))
frameCount = frameCount + 1
ret, frame = cap.read()
if ret:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)
cv2.imshow('frame', gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
loop = False
break
else:
print("Parse H264 failed " + ret)
cap.release()
cv2.destroyAllWindows()
三、效果

音视频学习--H264解析渲染的更多相关文章
- 音视频学习系列第(三)篇---wav文件的存储和解析
音视频系列 什么是wav wav是一种无损的音频文件格式,wav文件有两部分,第一部分是文件头,记录一些重要的参数信息,如音频的采样率,通道数,数据位宽,第二部分是数据部分,数据部分可以是PCM,也可 ...
- 音视频学习系列第(七)篇---MediaCodec的使用
音视频系列 什么是MediaCodec MediaCodec是安卓官方提供的一套用于音视频编码和解码的API,该API是在安卓4.1(API 16)引入的,因此只能用于4.1以上的手机 MediaCo ...
- 音视频学习系列第(五)篇---MediaRecorder的使用
音视频系列 什么是MediaRecorder MediaRecorder是安卓提供的一个用于音视频采集的类 在前几篇文章中,我们已经介绍了如何进行音频和视频的采集,即通过AudioRecord采集音频 ...
- 音视频 学习&开发&测试 资源
一.FFmpeg 学习 1. 官方API文档 FFmpeg Documentation:http://www.ffmpeg.org/doxygen/trunk/index.html 2. 优秀开源项目 ...
- Android音视频学习第7章:使用OpenSL ES进行音频解码
/* * *这里使用了transcode-1.1.7对wav文件进行解码.然后使用opensl es进行播放 * */ //用到的变量和结构体 WAV wav; //wav文件指针 SLObjectI ...
- Directshow 采集音视频数据H264+AAC+rtmp效果还不错
从usb摄像头或者采集卡中采集效果还是不错的.
- RTP协议解析及H264/H265 音视频RTP打包分析
一 概述 实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的. RTP协议详 ...
- Android 音视频开发学习思路
Android 音视频开发这块目前的确没有比较系统的教程或者书籍,网上的博客文章也都是比较零散的.只能通过一点点的学习和积累把这块的知识串联积累起来. 初级入门篇: Android 音视频开发(一) ...
- 堪称教科书级别的Android音视频入门进阶学习手册,开源分享!
概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -&g ...
- Android音视频开发(1):H264 基本原理
前言 H264 视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的.随着 x264/openh264 以及 ffmpeg 等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大 ...
随机推荐
- CentOS文件备份|还原
CentOS文件备份|还原 时间:2014-03-18 00:27 来源:51cto博客 作者:sailyangfan的空间 举报 点击:205次 dump备份 restore还原 dd数据备份 mk ...
- css 居中的汇总
前言 对css居中的几种方式汇总,并且分析适用情况. 正文 margin+position .CenterParent { position: relative; height: 200px; wid ...
- 部署iis7和vs2010低版本项目遇到的一些问题
前提 本人一直用iis10然后用的是vs2015,项目框架也用的是高版本的,所以后来接触了一个项目,部署iis7遇到的一些问题,按顺序总结出来,希望有所帮助. 正文 按顺序来: 1.HTTP错误 40 ...
- 《c#高级编程》第4章C#4.0中的更改(八)——协变和逆变
一.协变 C#协变是指在一些特定的情况下,可以将一个派生类型的实例赋值给其基类或接口类型的引用.这里的"派生类型"指的是从某个基类或接口继承并增加了新的成员的类型. C# 4.0 ...
- 修改中文、英文参考文献在文末列表中的顺序:EndNote
本文介绍在EndNote软件中,使得参考文献按照语种排列,中文在前.英文在后的方法. 前期我们在EndNote参考文献格式Output Styles界面介绍一文中,详细介绍了文献管理软件End ...
- 万物有灵,萌物Luka机器人如何让故事点缀童年
简介:未来的十年将会是AI影响教育的十年.物灵科技正是基于在AI+教育未来趋势前瞻性的把握,不断将人格化属性和关系式交互体验赋予更多人工智能产品,启发儿童语言培养阶段的学习兴趣.依托阿里云技术,物灵 ...
- OpenKruise 如何实现应用的可用性防护?
简介: OpenKruise 在 2021.9.6 发布了最新的 v0.10.0 版本新增了弹性拓扑管理和应用安全防护等能力,本文将为大家揭晓 OpenKruise 是如何实现应用的可用性防护能力. ...
- dotnet 写一个支持层层继承属性的对象
我最近在造一个比 Excel 差得多的表格控件,其中一个需求是属性的继承.大家都知道,表格里面有单元格,单元格里面允许放文本,文本可以放多段文本.本文的主角就是文本段落的样式属性,包括文本字体字号颜色 ...
- dotnet 读 WPF 源代码笔记 插入触摸设备的初始化获取设备信息
在 WPF 触摸应用中,插入触摸设备,即可在应用里面使用上插入的触摸设备.在 WPF 使用触摸设备的触摸时,需要获取到触摸设备的信息,才能实现触摸 获取触摸设备插入 在 WPF 中,通过 Window ...
- OSI模型之网络层
一.简介 网络层是OSI参考模型中的第三层,同时也是TCP/IP模型的第二层.它介于传输层和数据链路层之间,主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据 ...