音视频学习--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的细节做过多的研究,这大 ...
随机推荐
- sql 语句系列(记录时间差)[八百章之第十八章]
计算当前记录和下一条记录之间的日期差 关键点在于如何获得下一条日期. mysql 和 sql server select x.*,DATEDIFF(day,x.HIREDATE,x.next_hd) ...
- 重新点亮linux 命令树————服务管理工具[二十五]
前言 简单整理一下服务管理工具. 正文 服务集中管理工具. service 功能简单 systemctl 功能多 先来看下service脚本位置: 然后看下vim network 这里可以看到代码非常 ...
- 将项目封装进docker进行迁移和使用
首先要理解docker的基本使用,本文不做过多阐述,博主也对docker没有了解透彻. 这里列一下docker的基本命令: docker info # 查看docker信息 docker -v # 查 ...
- Oracle对一个字符串中的数字与非数字进行分割
Oracle对一个字符串中的数字与非数字进行分割 Oracle中对一个字符串中的数字与非数字进行分割 思路很简单,就是将字符串分成数字与非数字 则只要将字符串中的数字全部换成空,就是分割后的非数字字符 ...
- KubeVela 插件指南:轻松扩展你的平台专属能力
简介: 本文将会全方位介绍 KubeVela 插件的核心机制,教你如何编写一个自定义插件.在最后,我们将展示最终用户使用插件的体验,以及插件将如何融入到 KubeVela 平台,为用户提供一致的体验. ...
- MaxCompute项目子账号做超级管理员
场景 主账号不是大数据团队管理,使用MaxCompute员工都只持有子账号,而project的owner只能为主账号,但是很多MaxCompute的权限管理还需要owner才可以操作(如项目级别的fl ...
- 压测场景下的 TIME_WAIT 处理
简介: 压测场景下的 TIME_WAIT 处理 1. 序 某专有云项目具备压测场景,在Windows的压测机上用 LoadRunner 进行业务的压力测试,压测运行一段时间后出现大量端口无法分配的报错 ...
- [Go] Golang并发控制: WaitGroup 含义和常规用法
一个 WaitGroup 等待一个 goroutine 集合的结束. 主 goroutine 调用 Add 设置需要等待的 goroutine 数量. 接下来每个 goroutine 运行并在结束时调 ...
- [FAQ] mogodb Robo3T 客户端全屏后 怎么退出全屏
mongodb 的 Robo3T 客户端: 如果是不小心全屏了,不用担心,按 F11 恢复. 如果想要全屏,也是按 F11. Link:https://www.cnblogs.com/farwish/ ...
- [Trading] 如何应对股价下跌, 投资技巧
如果你想利用股价下跌的机会,你可以做以下事情来潜在地赚取利润. 为什么股价下跌会吓到投资者 商品在低价时,我们都倾向于买入,对于股票,价格暴跌以投资的形式损失你的钱,令人产生卖出情绪. 然而在卖掉之前 ...