使用MSYS2编译Windows平台FFmpeg问题集合

1.安装了speex但找不到

2.configure 配置完以后提示找不到cmp命令

……后续继续补充

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用MSYS2编译Windows平台FFmpeg问题集合

FFmpeg 发布3.0版

http://ffmpeg.org/releases/ffmpeg-3.0.tar.bz2

最值得关注是,本次更新内置的AAC编码器终于成为稳定版。移除了vo-aac 和libaacplus

载录一些更新特性

– Common Encryption (CENC) MP4 encoding and decoding support.

– New filters: extrastereo, OCR, alimiter, stereowiden, stereotools, rubberband, tremolo, agate, chromakey, maskedmerge, displace, selectivecolor, zscale, shuffleframes, vibrato, realtime, compensationdelay, acompressor, apulsator, sidechaingate, aemphasis, virtual binaural acoustics, showspectrumpic, afftfilt, convolution, swaprect, and others.

– New decoding: DXV, Screenpresso SPV1, ADPCM PSX, SDX2 DPCM, innoHeim/Rsupport Screen Capture Codec, ADPCM AICA, XMA1 & XMA2, and Cineform HD.

– New muxing: Chromaprint fingerprinting, WVE demuxer, Interplay ACM, and IVR demuxer.

– Dynamic volume control for ffplay.

– Native AAC encoder improvements.

– Zero-copy Intel QSV transcoding.

– Microsoft DXVA2-accelerated VP9 decoding on Windows.

– VA-API VP9 hardware acceleration.

– Automatic bitstream filtering.

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: FFmpeg 发布3.0版

FFmpeg-2.8 硬件H.264 编码器版 WIN32 编译版

之前FFmpeg-2.7.2编译了带硬件解码的windows版后,不少朋友留言,邮件等联系,需要更多的解码器和编码器,于是趁着2.8发布,编译了新版.
下载地址:https://github.com/illuspas/ffmpeg-hw-win32

ffmpeg 2.8
gcc 5.2.0
–enable-nvenc
–enable-libmfx
–enable-libfdk-aac
–enable-libspeex
–enable-libx264
–enable-libopenh264
–enable-libx265
–enable-libopus
–enable-libmp3lame

ffmpeg 2.8 h.264 codec

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: FFmpeg-2.8 硬件H.264 编码器版 WIN32 编译版

如何在windows中编译ffmpeg 2.6.1 以及 NVENC硬编码的尝试

目前我使用的编译链
gcc: TDM-GCC-4.9.2
msys: 从MinGW中拷贝而来

./configure –target-os=win32 –arch=i686

windows下编译ffmpeg 2.6.1
windows下编译ffmpeg 2.6.1

开启NVENC硬件编码H.264
-enable-encoder=nvenc –enable-nvenc –enable-nonfree

ffmpeg 支持 nvenc 硬编码 H264
ffmpeg 支持 nvenc 硬编码 H264

继续阅读“如何在windows中编译ffmpeg 2.6.1 以及 NVENC硬编码的尝试”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 如何在windows中编译ffmpeg 2.6.1 以及 NVENC硬编码的尝试

使用ffmpeg进行rtp串流h.264时关于sdp的一些分析

阅读ffmpeg串流的手册FFmpeg Streaming Guide
当进行点对点串流
如果视频编码为H.264时,payload type 为 96

此时会自动输出一段SDP的代码,这时候如果直接播放 继续阅读“使用ffmpeg进行rtp串流h.264时关于sdp的一些分析”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用ffmpeg进行rtp串流h.264时关于sdp的一些分析

使用FFmpeg连接rtmp时发送自定义AMF DATA

在使用flash cs/builder开发rtmp视频应用时,我们时常会在nc.connect的时候再传递一个对象作为连接信息发送给服务端。用于验证,确认连接用户,获取用户信息等等操作。
当我们使用ffmpeg来开发android,ios,pc版的rtmp应用时,已经为我们提供了非常方便的传参来实现。
先来看源代码:定位到libavformat/rtmpproto.c文件 继续阅读“使用FFmpeg连接rtmp时发送自定义AMF DATA”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用FFmpeg连接rtmp时发送自定义AMF DATA

使用C++进行Android NDK开发,引入FFmpeg头文件的注意事项

第一个问题:

这类错误,解决方法: 继续阅读“使用C++进行Android NDK开发,引入FFmpeg头文件的注意事项”

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: 使用C++进行Android NDK开发,引入FFmpeg头文件的注意事项

FFmpeg 生成.h264文件

今天编译了raspberry pi 的一个例子hello_video
可以解码.h264文件输出到显示器
使用ffmpeg生成这种无容器的 raw H.264格式

就是将mp4这类 length prefixed mode 转为 start code prefixed mode

另外,pi的硬解码性能确实不错,播放1080P的视频非常流畅,GPU加速,几乎不占CPU

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: FFmpeg 生成.h264文件

FFmpeg取回标准H.264流后播放的同时存为MP4文件

上篇使用pipe播放流后,观看的同时,如需保存成文件,使用ffmpeg也是很方便的.
既然已经是标准H264了,那就不需要再编码,直接copy流再muxer

代码原型请看这个这个回复,不过他的代码中,视频输出流的AVCodecContext

缺少了extradata,造成生成的MP4文件avcC没有SPS PPS信息而无法播放

添加如下代码

另外不需要两次打开输入流,完全是可以在播放开始后任意时间来控制开始保存文件.
使用mp4封装,在Android IOS上均可调用系统自带播放器播放

原创文章,转载请注明: 转载自贝壳博客

本文链接地址: FFmpeg取回标准H.264流后播放的同时存为MP4文件

使用FFmpeg解码私有传输协议标准H264流

今天解决了一个需求,通过TCP拉取数据包后按一个私有协议解包封包后得到标准H264.
按以前的方法,在已知高宽的情况下手动注册AVCodecContext,填充AVFrame,解码。。。。 非常繁琐,如果连高宽都不确定的话 :< 但仔细想想这种没有封入容器的裸数据如果是一个文件,据依然可以通过file协议使用avformat_open_input打开并自动解析等。 那么这种场景完全可以用管道来代替,果然ffmpeg是支持pipe的。 我的试验环境是Android,ffmpeg版本1.0.6, NDK8d 流程如下 创建有名管道 继续阅读“使用FFmpeg解码私有传输协议标准H264流”