自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (20)
  • 收藏
  • 关注

原创 ffmpeg 代码实现rtmp推流到服务器

前面2篇已经讲解了如何搭建直播服务器 ffmpeg + nginx配置智播推流服务器和ffmpeg + crtmpserver实现直播推流,并且通过ffmpeg命令实现了推流,下面讲解下如何用代码实现推流,并且通过设置dts来实现推流的速度。之前也写过,将摄像头的数据保存到本地为mp4:ffmpeg 获取电脑摄像头数据,并且保存为MP4视频,这里其实差不多,只是将输出设备从本地文件mp4 改...

2019-04-30 17:28:52 13464 1

原创 ffmpeg 常用函数说明

初始化部分函数1、初始化所有封装和解封装 flv mp4 mov mp3av_register_all();2、初始化网络库avformat_network_init();open部分打开输入设备int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt...

2019-04-30 17:10:51 997

原创 ubuntu一些使用技巧 和命令

1、截图全屏:按键print screen 存储位置 home用户的下的 picture目录下自由画框截图: shift +print screen键 也是存储在 home用户的下的 picture目录下2、进入root 文件模式nautilus会打开一个文件窗口,可以对任何文件进行修改,包括系统文件。3、解压tar -zxvf nainx-1.12.tar.g...

2019-04-30 11:41:25 167

原创 ubuntu 18.04 安装sogou拼音

下载直接百度输入搜狗输入法 for linux,下载ubuntu系统的输入法,download下文件:sogoupinyin_2.2.0.0108_amd64.deb安装cd到下载目录,然后进行安装:sudo dpkg -i sogoupinyin_2.2.0.0108_amd64.deb设置settings里面,看是否有中文,如果没有添加chinese,如果没有,就...

2019-04-30 11:38:29 3123 1

原创 ffmpeg + nginx配置智播推流服务器

nginx是配置网站服务器,但是通过安装相应modue也可以实现直播推流。nginx服务器配置环境ubuntu 16.04 nginx 1.13依赖库安装sudo apt-get install gitsudo apt-get install libssl-devsudo apt-get install libpcre3 libpcre3-dev sudo apt-ge...

2019-04-30 10:27:52 2432

原创 ffmpeg + crtmpserver实现直播推流

搭建服务器crtmpservercrtmpserver是开源的直播服务器,地址:https://github.com/j0sh/crtmpserver环境:虚拟机+ubuntu16.04gcc5.4在虚拟机中打开终端,执行下面操作:sudo apt-get updatesudo apt-get install cmakeasudo pt-get install li...

2019-04-29 10:50:57 1318 1

原创 c++ 读取文本操作

没有时间写博客,参考下:void model::InitModel(const char*modelFilePath,const char*textureImagePath) { std::vector<float> texCoord; std::vector<float> normal; std::vector<float> p...

2019-04-28 16:24:38 326

原创 android samplerExternalOES 纹理

samplerExternalOES 的纹理映射上一章节讲解了opengl顶点坐标与sampler2D坐标,而samplerExternalOES 是android用来渲染 相机数据。但它也存在一个问题,android的后置相机的预览的图像是顺时针旋转90°的,而相对于前置相机则是逆时针旋转90°的,如果想要跟照镜子一样的模式,自拍则还要左右对换。后置摄像头后置摄像头只是需要将纹理旋转...

2019-04-28 11:34:26 6594

原创 opengl 顶点坐标和sampler2D纹理坐标

在利用非固定管线进行纹理渲染的时候,经常要用到纹理和顶点坐标的映射关系,这里从三维角度介绍下二维的纹理坐标映射:顶点坐标:首先得明确:顶点坐标是在世界坐标系上(可参考:从渲染过程来理解opengl坐标系和坐标变换投影),这里的世界坐标系投影的屏幕坐标系(可参考:从渲染过程来理解opengl坐标系和坐标变换投影)上, x、y如上图所示,z正方向是从屏幕向外,人眼的位置则是在原点(0...

2019-04-26 13:13:07 10109 2

原创 yuv格式介绍与opengl 显示 yuv数据

目录yuv数据介绍:yuv444yuv420yuv422Opengl显示yuv数据提取数据创建纹理shader显示yuv数据介绍:yuv数据存储主要分3大种:yuv420、yuv444、yuv422图中:空心圆表示 一个uv, 实心圆表示一个y。下面对三种格式进行一个解释:cb代表u,cr代表v。大部分数据格式再 ffmpeg的枚举类...

2019-04-26 11:45:49 7670 2

原创 FFMpeg opengl显示解码avframe

FFmpeg解码出来avframe,但显示很容易出现乱码,因为为了计算的方便,ffmpeg解码出来的数据,总视根据系统处理器或者系统来补齐为 64、32、16的倍数。这也是我们显示乱码的问题所在。问题比如我显示抖音上的视频的宽为368x640, 解码的帧率avFrame,下面是avframe的一些成员变量:avFrame->format = 0 // 表示是 yuv420p的数据...

2019-04-26 09:55:46 3387 3

原创 android glSurfaceview 底层创建EGL渲染环境

之前 android studio搭建简单jni层的opengl开发框架讲到的是在上层render的三个回调函数中写jni函数,从而在jni层调用opengl的绘制,但是在做播放器的时候,需要用opengl来渲染 每一帧,而底层解码后,再渲染,将渲染放在底层,这样播放器的整个框架都在底层,上层只是UI的一些显示操作,而且 如果在render的onFrame中直接来显示帧,在暂停或者seek的时候由...

2019-04-25 18:02:57 1609 3

原创 C++ 数组作为参数

之前写过,当类对象作为参数,传入函数的时候,在函数内部,进行对类的操作,有的会生效,有的不会,当将类的指针对象传入的时候,就不会不生效。今天同样遇到,将数组指针指针当作参数,传入函数的时候也失效了。就是说,在函数中获得数组的值是错误的。给我的感觉,c++用起来很不安全,好多坑,当然,c++ 用的少自己菜的原因。可能是针对c++ 的 变量的生命周期了解不够透彻。1、函数内部 数组的生命周期...

2019-04-25 16:05:38 1115

原创 ffmpeg音视频同步,seek策略总结。

上一篇音视频同步策略和视频seek策略讲过一些方法,但是总视存在一些小问题,这里花费了近三天的时间对整个 音视频同步,以及seek测率进行较大的调整,使得整个程序更健壮,用户在界面胡乱操作,seek和pause都不会引起程序卡顿和崩溃了。音视频seek策略最简单的方法,就是一个大锁,将音频解码 和 视频解码播放 各用同一个锁锁住,然后,将seek部分用同一个锁锁住,这样seek的时候清空数据就...

2019-04-20 11:30:45 2702 2

原创 C++11 中thread 多线程的使用

1、简单的静态方法使用 void test(int a){ LOGE("test a = %d", a);}void main(){ std::thread seek_th(test ,2); seek_th.detach();}2、在类对象中,调用类的方法,创建线程。void LammyOpenglVideoPlayer::seekThread...

2019-04-19 14:59:52 679

原创 android jni 调用java类方法和成员变量

目录 jni层的2个变量介绍。jni调用java层对象和方法获取上层java的类。调用java层方法调用java成员变量参数 const char* sigjni层的2个变量介绍。JNIENV*env,这个是java jni的接口环境,通过它来和上层和c层打交道。jobject instance 这个变量就是jni 函数所在上层调用此函数的类...

2019-04-19 14:42:27 1363 1

原创 visual Studio 添加新的框架模板

一直在用visual studio开发c++,近期,公司要求利用c#开发一个窗体应用程序,打开vs后,点击c#,发现无wpf 或者 窗体应用程序,应该是当初安装vs的时候,没有选择安装此模块。因此到处需求安装新模板的方法,奈何没有找到,正绝望准备卸载重新安装vs的时候,却让我看到了一个应用: 点击打开此 installer程序然后就可...

2019-04-15 10:30:29 5653 1

原创 SwsContext、sws_scale缩放失败,或者缩放后视频乱码

虽然 ffmpeg的缩放效率比较低,但随着电脑或者硬件设备发展,即使使用低效率的,也可以达到普通播放器的要求了。但在使用的过程中的坑还是很多的。在android手机中使用SwsContext 和sws_scale缩放后,视频总视出现乱码或者 干脆一个黑屏。void FFMVideoShow::show(AVFrame *avFrame){ if(dataManager-&...

2019-04-13 11:31:39 3326

原创 音视频同步策略和视频seek策略

此文章讲的seek测率有一定缺陷,即用户非常快速点击seek操作,主线程会卡,下一篇ffmpeg音视频同步,seek策略总结是对这篇的改进,若想直接了解较好的策略,直接移步到我的下一篇中。音视频同步一般有三种方式,1、设置共同时间标志。这种多用于多视频播放中。2、音频同步视频,(由于人耳对音频比视频敏感,比较少用)3、视频同步音频下面就介绍一种视频同步音频的方法。视频同步音...

2019-04-12 12:06:39 1430

原创 win10 更改或者关闭 繁简写,解决ctr shift F键冲突

作为程序员,主要是系统于IDE的冲突,导致编译器不好用。关键每次找这个地方,找半天,今天记录下点击设置->时间和语言选择语言点击语言后,点击红色框部分,再点击选项然后点击 最下面的 框,微软拼音,然后点击选项进入进入后选择 按键...

2019-04-08 11:21:14 2026

原创 C++ error: unknown type name ' '

今天项目中,遇到一个很奇怪的问题,明明导入了头文件,却一直说不知道该类型。如类 videoInfo 类存储的是视频 的信息参数,它当作参数,传入 解码器,作为解码器的成员变量,,如下:#include <cstdint>#include "IDecode.h"extern "C"{#include "libavformat/avformat.h"#include ...

2019-04-06 12:34:28 9747

原创 C++ 类 和 类指针传参 区别

C++中,类作为成员,传入到函数中时候,在函数中处理的类的成员变量没有 更改,因此,当对类的成员变量有操作的时候最好用指针的形式,传入类的指针。看下面的代码:#pragma onceclass A{public: A(); ~A();public: void setA( const char * name, int age) { url = name; age = a...

2019-04-04 11:55:52 2345 2

原创 vue 框架基础方法学习

vue.js框架的结构原理v-cloak 、v-text ="msg"解决闪烁问题区别常用的操作:事件修饰符:.stop: 阻止冒泡(由内向外).prevent阻止自身的默认事件.capture 添加事件侦听器,使用事件捕获模式,可以事件从外部获取,再传向内。.self 事件只有点击元件本身才生效,但不会组织冒泡.once 事件只出发一次...

2019-04-03 19:13:02 154

原创 OpenSLES android平台播放音频pcm

目录播放流程和条件Opengl SLObjectItf 对象创建的四板斧播放pcm的流程播放流程和条件android自带的openSL库,可用来解码音频,也可以来播放音频,以及录音。要在jni层调用:1、cmakeList 中target_link_libraries 内引入库:OpenSLES2、引入头文件:#include "SLES/OpenSLES....

2019-04-02 09:57:26 929

原创 ffmpeg 音频重采样SwrContext

SwrContext重采样上下文创建分配空间SwrContext *swrContext = swr_alloc();设置参数struct SwrContext *swr_alloc_set_opts(struct SwrContext *s, int64_t out_ch_layout, enum ...

2019-04-01 14:48:00 706

原创 ffmpeg 视频像素尺寸转换SwsContext、sws_scale 函数解释

函数介绍SwsContext格式转换的上下文,下面是初始化函数struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH, enum AVPixelFormat dst...

2019-04-01 12:24:13 1560

原创 ffmpeg android jni端调用mediaCodec实现硬解码

硬解码,用的是cpu上面固化的一段芯片,专门用来处理音视频的,硬解码不会大量占用cpu 也不会占用gpu,但解码的帧率是固化的。ffmpeg是c库,而android只在java端抛出mediaCodec 来实现硬解码,ffmepg已经为andorid设计好了调用java层函数的方法av_jni_set_java_vm,但是我们需要在jni层传入java的对象。硬解码1、在jn...

2019-04-01 11:27:05 3794 4

原创 ffmpeg 新版本avcodec_send_packet 和avcodec_receive_frame实现解码

ffmpeg解码现在完全放在后台去做了,现在分为2个步骤avcodec_send_packet 发送数据到ffmepg,放到解码队列中avcodec_receive_frame 将成功的解码队列中取出1个frameint avcodec_send_packet(AVCodecContext *avctx, const AVPacket *avpacket)avpacket ...

2019-04-01 10:01:48 25051 6

原创 ffmepg AVFrame用法

空间分配类似于AVPacket,采用的引用计数。常用参数uint8_t *data[AV_NUM_DSTS_POINTERS] 数据。int linesize[AV_NUM_DSTS_POINTERS] 视频:一行数据大小,音频:一个通道的数据(防止视频 字节对齐)int width height; 视频的宽高int nb_samples 音频单通道的样本数量 ,单通道一...

2019-04-01 09:28:57 3567

rename.zip

有exe执行,可直接对文件夹种文件批量命名,无需安装python环境,且含有源码,详情参考博客: https://mp.csdn.net/postedit/103320058

2019-11-30

glsurfaceview在native创建EGL环境并渲染

本demo实现了 glsurfaceview 在底层实现 egl环境,并且在底层向窗口渲染 绘制图像。此方法适用于 游戏和 视频播放器方面,不懂的地方可以参考我的博客https://blog.csdn.net/zhangpengzp/article/details/89519416,欢迎评论和留言。

2019-04-25

opengl mvp矩阵实现3d漫游

代码在android 平台,jni 层利用 mvp矩阵实现了 地球的绘制,旋转 移动,以及相机的旋转和移动 ,参考:https://blog.csdn.net/zhangpengzp/article/details/88749779

2019-03-26

android studio opengl jni层搭建开发框架

代码实现了opengl se在android jni层开发的框架,具体请参考博客: https://blog.csdn.net/zhangpengzp/article/details/88714034

2019-03-21

go 实现百度图片爬虫(破解百度防爬虫机制)

安装好go,配置好环境变量,下载后,直接执行run go pachong.go 即可下载。当然更改 关键则文件夹,爬虫你想要的图片也可以。请参考博客: https://blog.csdn.net/zhangpengzp/article/details/88565325

2019-03-15

快速双边滤波的美颜算法

本文实现了基于快速双边滤波得美颜算法。详细信息可以查看博客:https://blog.csdn.net/zhangpengzp/article/details/87884584

2019-02-25

node.js 实现图片 压缩,上传下载,以及base64的图片显示、上传和服务端接受

该代码实现了node.js 配置服务器,网页上传压缩图片、显示base64 上传接受base64图片格式,该代码来源于博客:https://blog.csdn.net/zhangpengzp/article/details/86629097

2019-01-24

tensorflow模型以及so 和 jar在android studio中的应用

tensorflow编译的so、和jar包以及模型在android平台的运用,实现了手写字体的识别:来源博客:https://blog.csdn.net/zhangpengzp/article/details/86220384

2019-01-10

libcudnn7_7.3.1.20-1+cuda9.0_amd64.deb

cudnn7.3.1 for cuda9.0的 libcudnn7_7.3.1.20-1+cuda9.0_amd64.deb部分 伙伴可以在此下载,完整的一套请查看博客:https://blog.csdn.net/zhangpengzp/article/details/85008507

2018-12-14

libcudnn7-dev-doc_7.3.1.20-1+cuda9.0_amd64.deb

cudnn7.3.1 for cuda9.0的libcudnn7-dev_7.3.1.20-1+cuda9.0_amd64.deb 和libcudnn7-doc_7.3.1.20-1+cuda9.0_amd64.deb 部分 伙伴可以在此下载,完整的一套请查看博客:https://blog.csdn.net/zhangpengzp/article/details/85008507

2018-12-14

cudnn7.3.1 for cuda9.0中cudnn-9.0-linux-x64-v7.3.1.20.tgz第二部分

cudnn7.3.1 for cuda9.0, 伙伴可以在此下载,这是cudnn-9.0-linux-x64-v7.3.1.20.tgz第二部分,需要2部分都下载放在同一文件下,解压任一压缩文件即可,完整cudnn来自博客:https://blog.csdn.net/zhangpengzp/article/details/85008507

2018-12-14

cudnn7.3.1 for cuda9.0中cudnn-9.0-linux-x64-v7.3.1.20.tgz第一部分

cudnn7.3.1 for cuda9.0, 伙伴可以在此下载,这是cudnn-9.0-linux-x64-v7.3.1.20.tgz第一部分,需要2部分都下载放在同一文件下,解压任一压缩文件即可,完整cudnn来自博客:https://blog.csdn.net/zhangpengzp/article/details/85008507

2018-12-14

androidopengl相机实时滤镜拍照

实现opengl的实时滤镜,离屏渲染,拍照等功能,相比一些开源框架简化了很多,适合学习。部分手机无法显示的问题,请修改下CameraInterface 下的成员变量previewSize ,修改为 测试手机支持的即可。来源与博客:https://blog.csdn.net/zhangpengzp/article/details/84861785

2018-12-06

libyuv 编译的so库和include文件

编译好的google 的libyuv库的so文件和 libyuv的头文件,方便android 开发,来源于博客:https://blog.csdn.net/zhangpengzp/article/details/82356281

2018-09-03

ffmpeg编译的android so库和include文件

为android平台编译的ffmpeg so库 和 对用的 include文件,方便直接在android studio中进行ndk开发,来源于博客https://blog.csdn.net/zhangpengzp/article/details/82289224 使用so的方法: https://blog.csdn.net/zhangpengzp/article/details/82289769

2018-09-01

ffmpeg 编译so库android ndk来对视频编解码

对于ffmpeg 编译后的so在android studio上的应用,demo为对mp4 在ndk上对视频进行解码,并且编码为yuv格式,里面包含测试视频,来与博客https://blog.csdn.net/zhangpengzp/article/details/82289769

2018-09-01

tensorlow线性回归demo

随机100个点,符合一个线性回归,再利用tensorflow训练这些点,得到一个线性回归模型的参数w和b

2018-08-03

numpy array的操作和随机数等常用函数的demo

numpy 科学计算array的常用初始化、操作 注意事项,以及各种随机数的demo

2018-07-29

图片动漫风格化

opencv实现图片的风格化,针对任务效果不好,针对风景不错

2018-07-26

opencv 照片动漫风格化

风景照片的动漫画,针对人脸效果不怎么好。

2017-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除