
FFmpeg音视频编程
文章平均质量分 72
FFmpeg音视频编程栏目主要发布ffmpeg相关音视频编码、Android音视频多媒体处理等。
一航jason
这个作者很懒,什么都没留下…
展开
-
exoplayer3 ffmpeg 扩展库编译 aar,导入集成
exoplayer3 编译出来的ffmpeg扩展库aar原创 2023-07-24 16:55:40 · 1650 阅读 · 0 评论 -
Android 使用ffmpeg软编码 将摄像头采集视频编码成视频文件
Android 适用ffmpeg软编码 将摄像头采集视频编码成视频文件。这次代码实现的是视频采集的功能,Android 通过jni 调用ffmpeg 编码yuv数据变成视频文件。先上代码://编码器上下文保存的实体struct EnCodeBean { FILE *f; AVFrame *frame; AVPacket *pkt; AVCodecContext *c = NULL; int width=0; int height=0;};EnC原创 2021-08-23 19:30:12 · 1461 阅读 · 2 评论 -
Android camera2 api 相机 预览 拍照
从 Android 5.0 开始,Google 引入了一套全新的相机框架 Camera2 api。现在主流机型基本上都在5.0,所以可以完全不用考虑camera1 api 兼容问题。Camera1 那寥寥无几的 API 和极差的灵活性早已不能满足日益复杂的相机功能开发。Camera2 的出现给相机应用程序带来了巨大的变革,因为它的目的是为了给应用层提供更多的相机控制权限,从而构建出更高质量的相机应用程序。camera2 api 优势:1、可以获取更多的帧(预览/拍照)信息以及手动控制每一帧的参数2、原创 2021-06-08 16:51:14 · 1321 阅读 · 3 评论 -
ffmpeg 视频播放
背景在上一次的初次使用cmake编译jni后,这次cmake文件再次升级。利用网上的代码来编译一个简单的播放器。本文参照Android+FFmpeg+ANativeWindow视频解码播放一文,在cmake下重新编译。特将过程分享给大家。gradle 配置apply plugin: 'com.android.application'android { compi原创 2017-06-27 17:16:35 · 468 阅读 · 0 评论 -
android配置ffmpeg
android配置ffmpeg上面是项目目录结构:一配置 gradle:apply plugin: 'com.android.application'android { compileSdkVersion 26 buildToolsVersion "26.0.0" defaultConfig { applicationId "原创 2017-07-14 11:21:42 · 395 阅读 · 0 评论 -
《android多媒体api》之VideoView 视频播放控件
《android多媒体api》系列是整合梳理android开发中经常用到的媒体相关api;多媒体开发主要内容有音频、视频录制播放、摄像头操作、录制操作、流媒体、直播、推流、拉流等方面;最近几年移动直播和视频应用发展犹如雨后春笋一般直插云霄,呃。。好吧这段比喻可以不用看了!!,反正行业兴起肯定催生了很多多媒体相关应用开发程序员。那么怎样才能成为多媒体开发程序员,首先必须要熟练使用和了解android自原创 2017-12-14 14:55:50 · 4113 阅读 · 0 评论 -
《android多媒体api》之camera配合surface预览相机画面和拍照
android开发自定义相机或者一些扫描功能的时候经常会遇到相机预览的问题了,这个必须获取相机然后将画面预览到手机界面上,那么输出界面用的就是surface控件。首先看看surfaceview是什么?SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。surface原创 2017-12-14 15:21:41 · 1536 阅读 · 0 评论 -
《android多媒体api》之MediaPlayer自定义视频播放器
MediaPlayer是什么?MediaPlayer类可用于控制音频/视频文件或流的播放。前面介绍了VideoView 跟MediaPlayer用法基本相同,不过MediaPlayer使用时候注意他有个缓存机制,如果没有缓存视频是不能够播放的;这里实现了一个基于MediaPlayer实现自定义视频播放器,具有功能播放、暂停、停止、进度条调整视频播放进度等。案例是通过surfaceview来显示画面,用seekbar原创 2017-12-15 10:44:07 · 2343 阅读 · 0 评论 -
《android多媒体api》之MediaRecorder音视频录制api
MediaRecorder是什么?MediaPlayer类主要用于音频视频录制的api。现在有很多短视频app非常火爆,所以了解视频录制api是非常重要的,android自带多媒体录制api都是在硬编码(依靠硬件驱动编码)基础上进行封装,所以如果要达到专业级别的短视频应用开发工程师还要了解如何前置处理pcm 、jpg等处理算法。原创 2017-12-15 12:10:07 · 3035 阅读 · 4 评论 -
《android多媒体api》之AudioRecord原始音频pcm录制api
AudioRecord是什么?AudioRecord是可以录制原始音频数据pcm的api,如果是一些音乐录制,或者直播语音等都需要使用音频数据前置处理,比如:降噪、多音频合成、特效音效处理等等。那么就需要获取原始音频数据后处理完毕后在编码,因为编码后的数据是不能够处理降噪、特效等操作的。那么就下来看看怎么用AudioRecord来录制原始音频数据;下面做了一个demo,主要是录制音频后保存到文件中去。pcm录音时候原创 2017-12-15 14:20:44 · 1331 阅读 · 0 评论 -
《android多媒体api》之AudioTrack原始音频pcm播放api
AudioTrack是什么?AudioRecord是可以播放原始音频数据pcm的api,pcm一般的播放器都是无法播放的,AudioRecord可以播放pcm,不过需要制定播放时候的采样率、声道数位宽,现在在android下面做了一个demo,主要是播放pcm录音文件。pcm录音时候需要制定几个重要参数,播放的时候还需要设置录制缓冲区大小,缓存区越大,内存溢出风险越小。原创 2017-12-15 14:41:38 · 1466 阅读 · 0 评论 -
《android多媒体api》之摄像头camera采集原始视频数据
如何通过camera摄像头采集nv21原始数据?直播开发中经常需要获取视频原始帧数据然后前置处理例如:美颜、水印、特效等然后通过编码在通过rtmp或者rtsp等协议方式推流出去,可以完成实时图像传递。那么如何获取原始视频帧数据?安装camera api有一个设置回调的方法,可以将可以通过它来获取原始视频数据如nv21 、 nv12 、 yv12 等。下面构建了一个demo就是当surfaceview控件构建完成后可原创 2017-12-17 15:22:03 · 4256 阅读 · 1 评论 -
ffmpeg手动添加adts头部信息
ffmpeg手动添加adts头部信息ffmpeg adts 头部信息都要从 extradata 字段里面提取 。aac数据包为什么adts 要加头 ,因为没有头部信息在网络传播过程中难以解码使用。工具方法:typedef struct{ int write_adts; int objecttype; int sample_rate_index; int...原创 2020-02-26 12:03:02 · 2753 阅读 · 1 评论 -
ffmpeg保存avframe中pcm数据到文件
ffmpeg保存avframe中pcm数据到文件。代码如下: data_size = av_get_bytes_per_sample(dec_ctx->sample_fmt); if (data_size < 0) { LOGI("get size error"); return -1; ...原创 2020-02-26 12:13:40 · 1434 阅读 · 0 评论 -
android支持的视频音频硬解码器
android支持的视频音频硬解码器MediaCodec支持的有vp8 、VP9 、H.264、H.265、MPEG4、H.263等;MediaCodec支持的音频格式有3gpp、amr-wb、amr-wb、amr-wb、g711-A、g711-U 、AAC(not packaged in LATM)等;参考:“video/x-vnd.on2.vp8” - VP8 video (i.e. ...原创 2020-02-26 12:40:38 · 3484 阅读 · 1 评论 -
ffmpeg bitstream filter使用
ffmpeg bitstream filter使用使用ffmpeg bitstream filter为nalu加头用于网络传播。初始化:AVBitStreamFilter *filter = const_cast<AVBitStreamFilter *>(av_bsf_get_by_name("hevc_mp4toannexb"));//aac_adtstoasc h264_mp...原创 2020-02-27 11:09:12 · 2196 阅读 · 0 评论 -
ffmpeg pcm混音
视频会议中经常需要处理的场景有多路音频混音,那么混音有很多种算法有比较主流的有aec、平均权重等方法;如果公司要开发生产级别的音频混合要的算法可能会更加多,可以找算法公司购买。ffmpeg也有混音的操作,用的就是平均权重算法。#define ENABLE_FILTERS 1static const char* filter_descr = "[in0][in1]amix=inputs=2[...原创 2020-03-20 09:19:13 · 1958 阅读 · 0 评论 -
android speex AEC 回音消除
android speex AEC 回音消除。有时候喇叭声音会被mic录制进去,就会产生回音数据,这是非常让人头疼的,所以去回音在音视频应用中非常重要。现在主流的回音消除手段有android自带api效果很好,如果其他平台就要使用c库了。有哪些c库具备这个功能webrtc 、 speex等。他们都是开源代码,而且后者还没有专利保护可以随意开鲁。今天介绍的就是speex方法消除回声。那么sp...原创 2020-03-24 16:32:38 · 3220 阅读 · 0 评论 -
android基于ffmpeg本地视频、在线视频、直播播放器 支持rtmp、rtsp、http等协议
最近做了一个支持onvif标准的摄像头管理程序,主要就是在局域网中通过程序控制摄像头获取摄像头视频流分发给广域网中的客户端设备;这里面用了onvif协议相关知识和ffmpeg视频流处理的相关知识。onvif相关的以后有机会再分享,今天主要是把android ffmpeg相关的东西分享一下。视频播放流程:解封装:常见封装格式有mp4、3gp、AVI等,这些封装格式包含了音视频流相关信息。每种封装格式都有自己的规则那么解封装就是按照规则分离出音视频数据。例如:mp4格式MP4(MPEG-4 Par原创 2020-09-11 16:02:03 · 2300 阅读 · 2 评论