
FFMPEG
文章平均质量分 68
学习中呢
一个本科小生的匍匐前进之路
展开
-
使用NDK编译ffmpeg
测试编译平台为linux,首先去ffmpeg官网下载linux版本ffmpeg并解压缩,本人编译版本为2.6.9。需要下载linux版本ndk并解压缩,版本为r10e。 修改修改下载目录中的configure文件SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LI原创 2017-09-13 10:50:03 · 442 阅读 · 0 评论 -
视频技术基础
在线直播可以说从去年开始变成了一个火爆的创业领域,一下子出来了很多做视频直播的公司。但说实话这方面的技术书籍实在是非常的少,网上的资料也很零散,所以我决定写一些列介绍视频技术的文章。今天这篇文章先对视频技术中的基础概念做一些简单的总结。你所能看到的视频现在可能大部分人都直接用浏览器在视频网站上看视频了,已经不太能看到视频的后缀名之类的东西了。但是如果是把视频下载到本地观看的话,是可以看到视频文转载 2017-11-18 14:25:50 · 932 阅读 · 0 评论 -
码率,分辨率,帧率 ...
上篇文章我讲了视频中的一些常见的基本概念,比如封装格式,编码格式。这篇文章我分享一些视频文件的“外在”参数,这些参数即使是非技术工作者也应该能简单理解。分辨率码率帧率分辨率这个最好理解,下面引用一下百度百科的解释显示分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少。由于屏幕上的点、线和面都是由像素组成的,显示器可显示的像素越多,画面就越精细,同样的屏幕区域内能转载 2017-11-18 14:22:07 · 780 阅读 · 0 评论 -
详解YUV420数据格式
1. YUV简介YUV定义:分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。YUV格式:有两大类:planar和packed。对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V转载 2017-10-26 00:43:27 · 347 阅读 · 0 评论 -
H2.64中I帧和IDR帧的区别(转)
DR(Instantaneous Decoding Refresh)--即时解码刷新。 I和IDR帧都是使用帧内预测的。它们都是同一个东西而已,在编码和解码中为了方便,要首个I帧和其他I帧区别开,所以才把第一个首个I帧叫IDR,这样就方便控制编码和解码流程。IDR帧的作用是立刻刷新,使错误不致传播,从IDR帧开始,重新算一个新的序列开始编码。而I帧不具有随机访问的能力,这个功能是由I转载 2017-10-26 00:08:46 · 398 阅读 · 0 评论 -
H264码流中SPS PPS详解
1 SPS和PPS从何处而来?2 SPS和PPS中的每个参数起什么作用?3 如何解析SDP中包含的H.264的SPS和PPS串?1 客户端抓包在做客户端视频解码时,一般都会使用Wireshark抓包工具对接收的H264码流进行分析,如下所示:在这里我们可以看到对解码视频起关键作用的SPS和PPS。双击SPS内容如下:双击PPS内容如下:转载 2017-10-26 00:02:55 · 831 阅读 · 0 评论 -
[视频处理]用java程序调用ffmpeg执行视频文件格式转换flv
用java小例题说明更直观:(可以直接编译运行)环境我在windows平台下测试的。。。需要在e:\下有ffmpeg.exe;mencoder.exe;drv43260.dll;pncrt.dll共4个文件。如何得到这4个文件参考文章http://blog.sina.com.cn/u/4a424eca010005kb还要在e:\input下放各种文件名为a的以下各种视频文件;还要e转载 2017-11-09 18:10:33 · 510 阅读 · 0 评论 -
[视频处理]自译的ffmpeg ./configure参数
[root@web ffmpeg]# ./configure –help Usage: configure [options] Options: [defaults in brackets after descriptions]Standard options: 基本选项参数 –help 显示此帮助信息|print this message –转载 2017-11-09 18:07:57 · 397 阅读 · 0 评论 -
ffmpeg3版本的解码接口做了不少调整,之前的视频解码接口avcodec_decode_video2和avcodec_decode_audio4音频解码被设置为deprecated,对这两个接口做了
ffmpeg3版本的解码接口做了不少调整,之前的视频解码接口avcodec_decode_video2和avcodec_decode_audio4音频解码被设置为deprecated,对这两个接口做了合并,使用统一的接口。并且将音视频解码步骤分为了两步,第一步avcodec_send_packet,第二步avcodec_receive_frame,通过接口名字我们就可以知道第一步是发送编码数据包,转载 2017-10-30 23:45:40 · 4090 阅读 · 0 评论 -
音视频简单了解
相信大家都知道flv,MP4等格式视频,其实这些都只是封装格式,也就是把音频压缩和视频的压缩封装起来,然后形成这些视频格式。我们播放视频时,这些封装格式并不能直接播放,而是需要一系列的过程才显示到我们的屏幕上。 我来形容一下具体的流程,首先我们得到一个视频数据,视频都包含音频。如果是网络上获取的,我们需要解协议,去除头信息和一些无关紧要的数据,解协议后得到封装格式数据(mp4,flv…),如果原创 2017-09-12 14:08:28 · 385 阅读 · 0 评论 -
x264和ac编译
最近在学ffmpeg时发现编译好的动态库并不能把yuv编码为h264,经过google和百度发现需要单独编译好x264和aac后在编译ffmpeg才可以使用音频和视频的编码编译x264下载libx264压缩文件 点击下载 编译x264 把下载好的压缩包解压缩,然后书写shell脚本放入解压后的x264文件夹 脚本如下#!/bin/bashexport NDK=/usr/ndk/an原创 2017-09-26 21:37:46 · 855 阅读 · 0 评论 -
错误信息Fatal signal 11 (SIGSEGV) at 0x00000040 (code=1), thread 2736 (Thread-103)
在用ffmpeg编码视频时报了这个错误,经过一步步排查,最后得知原因是io问题,在文件的都写时是否被赋予权限, 1.在AndroidMainfest是否允许对内存卡进行读写,权限如下<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="and原创 2017-09-17 18:19:09 · 716 阅读 · 0 评论 -
‘for’ loop initial declarations are only allowed in C99 mode
linux系统下的c编程与windows有所不同,如果你在用gcc编译代码的时候提示‘for’ loop initial declarations are only allowed in C99 mode,可能就是因为你在loop循环比如for中使用未预先定义的变量,比如:for(int i=0;i{}这种写法在vc里是没有错的,而子gcc就会提示错误,要求遵守c89标准,c8转载 2017-09-17 18:04:22 · 7214 阅读 · 0 评论 -
解码为yuv
参考各路大神音视频开发,现总结如下,以免以后忘记。首先说一下本篇转为的格式为yuv420p,yuv420p实际上是一种数据结构,四个y公用一个uv,所以一个y只用了四分之一u和四分之一v 先来一张解码流程图 av_register_all()初始化了格式封装信息库,初始化了muxer(复用器)和demuxer(分离器)和协议,实际上调用了 av_register_input_format()原创 2017-09-14 22:13:20 · 808 阅读 · 0 评论 -
ffmpeg数据结构
AVFormatContext 封装格式上下文结构体,也是统领全局的结构体,保存了视频文件封装格式的信息AVInputFormat 每种封装格式(例如flv,mkv,mp4,avi)对应一个结构体AVStream 视频文件每个视频(音频)流对应一个该结构体AVCodecContext 编码器上下文结构体,保存了视频(音频)编解码相关信息AVCodec 每种视音频编解码器(原创 2017-09-14 21:12:01 · 676 阅读 · 0 评论 -
ffmpeg八大模块及常用函数介绍
八大库avcodec:编解码()最重要的库avformat:封装格式处理avfilter:滤镜特效处理avdevice:各种设备的输入输出avutil:工具库(大部分哭都需要这个库的支持)postproc:后加工swresample:音频采样数据格式转换swscale:视频像素数据格式转换常用函数av_register_all():注册所有组件avformat_open_inp原创 2017-09-13 11:15:45 · 4109 阅读 · 1 评论 -
ffmpeg 调整音视频播放速度
1. 调整视频速率1.1 原理调整视频速率的原理为:修改视频的pts,dts 此过程由于不用进行解码编码,所以费时很少1.2 setpts修改视频速率ffmpeg -i input.mkv -an -filter:v "setpts=0.5*PTS" output.mkv1注意:调整速度倍率范围[0.25, 4]如果只调整视频的话最好把音频禁掉对视频转载 2017-12-28 16:45:16 · 10503 阅读 · 2 评论