ffmpeg.js使用libopenh264解码性能低的原因

最近在研究用Emscripten开发JavaScript的直播播放器,使用ffmpeg内置的h264解码速度还是可以接受的,本想使用openh264的解码进行比较,但发现非常慢,无法达到640×480@30帧的解码速度。

本来以前也有过用openh264的项目,直接使用libopenh264进行解码速度还是很快的。但编译进ffmpeg里使用就特别慢,于是-g重新编译NodePlayer.js并开始Chrome Performance录制。
继续阅读“ffmpeg.js使用libopenh264解码性能低的原因”

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

本文链接地址: ffmpeg.js使用libopenh264解码性能低的原因

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

1.安装了speex但找不到

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

……后续继续补充

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

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

FFmpeg 3.1 发布

上个月第发布的最新版3.1,特性太多,高亮几个做移动多媒体开发的关注点

  • DXVA2-accelerated HEVC Main10 decoding
  • fieldhint filter
  • loop video filter and aloop audio filter
  • Bob Weaver deinterlacing filter
  • firequalizer filter
  • datascope filter
  • bench and abench filters
  • ciescope filter
  • protocol blacklisting API
  • MediaCodec H264 decoding
  • VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer
  • VP9 RTP payload format (draft v2) packetizer
  • AudioToolbox audio decoders
  • AudioToolbox audio encoders
  • coreimage filter (GPU based image filtering on OSX)
  • libdcadec removed
  • bitstream filter for extracting DTS core
  • ADPCM IMA DAT4 decoder
  • musx demuxer
  • aix demuxer
  • remap filter
  • hash and framehash muxers
  • colorspace filter
  • hdcd filter
  • readvitc filter
  • VAAPI-accelerated format conversion and scaling
  • libnpp/CUDA-accelerated format conversion and scaling
  • Duck TrueMotion 2.0 Real Time decoder
  • Wideband Single-bit Data (WSD) demuxer
  • VAAPI-accelerated H.264/HEVC/MJPEG encoding
  • DTS Express (LBR) decoder
  • Generic OpenMAX IL encoder with support for Raspberry Pi
  • IFF ANIM demuxer & decoder
  • Direct Stream Transfer (DST) decoder
  • loudnorm filter
  • MTAF demuxer and decoder
  • MagicYUV decoder
  • OpenExr improvements (tile data and B44/B44A support)
  • BitJazz SheerVideo decoder
  • CUDA CUVID H264/HEVC decoder
  • 10-bit depth support in native utvideo decoder
  • libutvideo wrapper removed
  • YUY2 Lossless Codec decoder
  • VideoToolbox H.264 encoder

包括了iOS平台上的硬件编解码AAC,硬件编码H.264,Android平台的硬件解码,树莓派的OpenMAX IL硬编码器。官方强烈建议各位升级 :D。

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

本文链接地址: FFmpeg 3.1 发布

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 编译版

FFmpeg 2.7发布,Intel Quick Sync Video编解码器已正式推出

此版本发布比较关注的Intel Quick Sync Video编解码器正式推出了,之前2.6的时候在master分支测试过。
相比较NVENC,之前也有测试过,就目前NV的显卡驱动,GeForce系列只支持同时两路编码会话,实在是吝啬,空有强大性能。同期测试过QSV,就没有这方面限制。
在做服务端流媒体实时转码的硬编码方面,QSV目前比较成熟。

————————————————–
下载博主编译的ffmpeg.exe:https://github.com/illuspas/ffmpeg-hw-win32

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

本文链接地址: FFmpeg 2.7发布,Intel Quick Sync Video编解码器已正式推出

如何在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 2.6 发布

非常多的改进,比较感兴趣的是正式支持openh264作为编码器了。
openh264使用宽松的BSD许可协议,由cisco主导发布。

思科并不是第一个去创建H.264的开源实现的。GNU的libavcodec库已经包括了解码器和编码器,后者基于x264。但是思科提供的开源实现是有法律支持的 – 而这正是其它的开源实现所缺乏的。这使得思科的解码器对象Mozilla这样的公司来说就非常有用,这可以使得它们无需担心法律问题。

另外还支持了Nvidia nvenc的硬件编码器,这无疑加强了了作为云端流媒体转码的优势!
后期做个x264与openh264的性能测试。

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

本文链接地址: FFmpeg 2.6 发布

使用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