ffmpeg
HappinessLee
专注音视频
展开
-
WINDOWS 下编译 ffmpeg 源码总结
WINDOWS 下编译 ffmpeg 源码,有两种方式:VC、GCCVC 编译: https://github.com/ShiftMediaProject/FFVS-Project-Generator.git 优点:省时省力。动态库、静态库、X86、X64都支持。 缺点: A. 需要 VC 运行库的支持。作者也不打算脱离 VC 运行库。 B. 不...转载 2019-12-04 23:22:47 · 1783 阅读 · 0 评论 -
FFMPEG解码流程理解搜集整理及tutorial5的理解,主要是音视频同步
1. 注册所有容器格式和CODEC: av_register_all()2. 打开文件: av_open_input_file()3. 从文件中提取流信息: av_find_stream_info()4. 穷举所有的流,查找其中种类为CODEC_TYPE_VIDEO5. 查找对应的解码器: avcodec_find_decoder()6. 打开编解码器: a转载 2016-08-24 16:32:45 · 697 阅读 · 0 评论 -
ffmpeg-3.1.4最新版调用android mediacodec硬解编译脚本
#!/bin/bashexport TMPDIR=/homeNDK=/project/android-ndk-r10eSYSROOT=$NDK/platforms/android-16/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86CPU=armPREFI原创 2016-10-24 15:58:05 · 4667 阅读 · 16 评论 -
libyuv转换
intConvertI420ToRGB24(constuint8_t* src_frame,uint8_t* dst_frame, int width,int height){ constuint8_t* yplane= src_frame; constuint8_t* uplane= sr原创 2016-12-10 16:47:38 · 7398 阅读 · 0 评论 -
关于FFMPEG 中I帧、B帧、P帧、PTS、DTS
1 基本概念1.1 名词解释媒体:是表示,传输,存储信息的载体,常人们见到的文字、声音、图像、图形等都是表示信息的媒体。多媒体: 是声音、动画、文字、图像和录像等各种媒体的组合,以图文并茂,生动活泼的动态形式表现出来,给人以很强的视觉冲击力,留下深刻印象多媒体技术:是将文字、声音、图形、静态图像、动态图像与计算集成在一起的技术。它要解决的问题是计算机进一步帮助人类按转载 2017-02-17 14:28:24 · 1783 阅读 · 0 评论 -
ffmpeg 从mp4上提取H264的nalu
1.获取数据ffmpeg读取mp4中的H264数据,并不能直接得到NALU,文件中也没有储存0x00000001的分隔符。下面这张图为packet.data中的数据从图中可以发现,packet中的数据起始处没有分隔符(0x00000001), 也不是0x65、0x67、0x68、0x41等字节,所以可以肯定这不是标准的nalu。其实,前4个字0x000032ce表示的是na转载 2017-02-27 20:32:31 · 695 阅读 · 0 评论 -
h264检测是I帧还是P帧,解决录像第一帧有马赛克问题
最近使用h264码流数据进行录像,但是录出来的第一帧有马赛克,究其原因是录像的第一帧不是关键帧,所以需要录像是需要判断第一帧是否是关键帧,方法有两种,第一种是原码流的基础上查找,第二种是将原码流传递给ffmpeg让ffmpeg判断key_frame,第二种相对简单,但是由于这样一来录像和解码视频切合的太紧密,之后修改比较麻烦,所以选择第一种方案,查看注释1可以明白如何检测h264码流的关键帧,下面转载 2017-04-05 13:56:53 · 1439 阅读 · 0 评论 -
ffmpeg处理网络流
#include "utils.h"#include #include #include UdpQueue recvqueue;UdpParam udpParam;//注册av_read_frame的回调函数,这里只是最简处理,实际应用中应加上出错处理,超时等待...int read_data(void *opaque, uint8_t *b原创 2017-11-17 17:11:52 · 4739 阅读 · 2 评论 -
视频、音频打时间戳的方法及其音视频同步(播放)原理
视频、音频打时间戳的方法http://blog.csdn.net/wfqxx/article/details/54971381. 视频时间戳pts = inc++ *(1000/fps);其中inc是一个静态的,初始值为0,每次打完时间戳inc加1.在ffmpeg,中的代码为pkt.pts= m_nVideoTimeStamp++ * (m_...转载 2019-05-23 14:01:26 · 2711 阅读 · 0 评论