OpenH264 是思科公司发布的一个开源的 H.264 编码和解码器。
Constrained Baseline Profile up to Level 5.2 (4096x2304)
Arbitrary resolution, not constrained to multiples of 16x16
Rate control with adaptive quantization, or constant quantization
Slice options: 1 slice per frame, N slices per frame, N macroblocks per slice, or N bytes per slice
Multiple threads automatically used for multiple slices
Temporal scalability up to 4 layers in a dyadic hierarchy
Spatial simulcast up to 4 resolutions from a single input
Long Term Reference (LTR) frames
Memory Management Control Operation (MMCO)
Reference picture list modification
Single reference frame for inter prediction
Multiple reference frames when using LTR and/or 3-4 temporal layers
Periodic and on-demand Instantaneous Decoder Refresh (IDR) frame insertion
Dynamic changes to bit rate, frame rate, and resolution
Annex B byte stream output
YUV 4:2:0 planar input
Constrained Baseline Profile up to Level 5.2 (4096x2304)
Arbitrary resolution, not constrained to multiples of 16x16
Single thread for all slices
Long Term Reference (LTR) frames
Memory Management Control Operation (MMCO)
Reference picture list modification
Multiple reference frames when specified in Sequence Parameter Set (SPS)
Annex B byte stream input
YUV 4:2:0 planar output
Windows 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)
Mac OS X 64-bit (initial release does not include this target, will follow soon)
Linux 64-bit and 32-bit (initial release is only 32-bit, 64-bit will follow soon)
Android 32-bit (initial release does not include this target, will follow soon)
iOS 64-bit and 32-bit (not supported yet, may be added in the future)
Intel x86 optionally with MMX/SSE (no AVX yet, help is welcome)
ARMv7 optionally with NEON (initial release does not include this target, will follow later)
Any architecture using C/C++ fallback functions
一、编码器编译 1.进入codec/build/win32/enc/目录下 2.在该目录下看到已经有sln项目文件了,直接用vs2013打开便可以成功转换 3.将encConsole设为启动项,并且点击右键,选择属性 4.弹出一个encConsole的属性页,配置选择Debug,然后点击配置属性中的调试 5.点击调试后在其右侧会有命令参数这一选项,输入已经编辑好的cfg文件的路径,点击确定,便可进
编译工具:CYGWIN 只要进入到openh264根目录 就能够直接根据github提供的编译步骤进行编译,之后会获得openh264相关的动态和静态库.我的openh264是15年8月下载的 下载地址 编码部分: 1 从android获取摄像头数据使用的格式是NV21(yuv420sp),由于手机拍摄默认是横屏,所以获取到数据需要将数据进行旋转(是否有更好的方式处理 之后再研究). 顺时针旋
目录 前言 正文 1. 下载OpenH264源码 2. Windows平台编译环境搭建 2.1 安装vs2019 2.2 安装windows SDK
openh264使用指南 概述 目前openh264官网只有一些问答,关键的开发资料全在github页的的wiki页面(https://github.com/cisco/openh264/wiki) 同样官方的二进制库也在github页的release页面上提供下载(https://github.com/cisco/openh264/releases) 此文章所述皆为windows平台,其他平台使
目前最常用的264工程师x264; 最近有又有一个开源工程OpenH264,WebRTC再用用,具体工程具体没有详细研究; 编译完成工程后,用h264dec.exe命令行测试解码x264编码的文件,解码后正常显示,也就是说这两个工程编码的格式应该相互兼容; 地址:http://www.openh264.org/faq.html 提供C语言接口和C++接口; 目前网络可以找到的文档相对较少,大概浏览
今天是春节前最后一年上班,也因为最近集成了MSDK、X264两种编码器,因此今天小试思科OpenH264编码器,打算也把它集成到我的代码里面。 首先是编译问题: 系统平台:win7 x86 编译环境:MinGW32/Msys 1、下载源码,我下载的是openh264-master,可见是从github上面下载的; 2、解压之后,用msys进入openh264根目录,直接运行ma
例子 大神音视频文章: https://github.com/gongluck/AnalysisAVP/blob/5cd6313263850dcb7d04fe83e249f30460096852/%E9%9F%B3%E8%A7%86%E9%A2%91%E6%A1%86%E6%9E%B6.md#windows%E7%BC%96%E8%AF%91-2 提供了一个openh264的使用例子: /* *
在基于webrtc项目中用到了openH264编码器,在实际应用中对编码器的关键参数优化给出一些总结和建议: 1.iRCMode:码率控制模式: 0值对应quality mode(RC_QUALITY_MODE)更侧重保证视频质量,码率稳定性控制稍差;1值对应bitrate mode (RC_BITRATE_MODE),更侧重保证码率的稳定性。 建议该参数设置为1:iRCMode =1; 2.
一:创建编码器,初始化设置: 说明:不是所有参数都是要设置,可以通过 int EXTAPI GetDefaultParams (SEncParamExt* pParam) = 0;获取默认参数,然后修改几个主要初始化编码参数; 1.1: 常用初始化参数设置: typedef struct TagEncParamBase { EUsageType iUsageType; ///< applica
一 解析一帧的入口 int32_t WelsDecodeSlice (PWelsDecoderContext pCtx, bool bFirstSliceInLayer, PNalUnit pNalCur) { // 解码slice PDqLayer pCurDqLayer = pCtx->pCurDqLayer; PFmo pFmo = pCtx->pFmo; int32_t iRet; int
编码过程 初始化ISVCEncoder ISVCEncoder* encoder_; int rv = WelsCreateSVCEncoder(&encoder_); if (0 != rv || !encoder_) { //error } ISVCEncoder提供了一系列的编码有关的接口,如初始化编码器、设置编码参数、编码等; 设置相关参数 openh264提供了
1.初始化ISVCEncoder ISVCEncoder* encoder_; int rv = WelsCreateSVCEncoder(&encoder_); if (0 != rv || !encoder_) { //error } ISVCEncoder提供了一系列的编码有关的接口,如初始化编码器、设置编码参数、编码等; 2. 设置相关参数 openh264提供了两个结构体来设置编码参数,
打开Openh264 gn gen out/project --ide=vs --args=“proprietary_codecs=true rtc_use_h264=true use_openh264=true” ninja -C out/project Openh264的使用 h264_encoder_impl 该文件是webrtc对openh264使用的封装。 类H264EncoerImpl
openH264编码流程 之前在项目中用过openH264进行h264编码,本文介绍一下编码流程,算是做一个总结。 编码流程基本可以分为3步: 1.创建编码器。 int result = WelsCreateSVCEncoder(&encoder); 可以通过返回的参数是否为cmResultSuccess来判断编码器是否创建成功。 2.初始化编码器,包括各种参数的设置。 memset(&encPa
openH264解码流程 之前项目中用过openH264进行解码,本文介绍一下解码流程,算是对之前项目的一个总结。 同openH264编码一样,openH264的解码流程也主要分为3步: 1:创建解码器。 int result = WelsCreateDecoder(&decoder); 同样可以通过判断返回值来判断解码器是否创建成功。 2:初始化解码器。 memset (&pParam, 0,
openh264dec中finish_frame的逻辑和avviddec比起来比较简单,在handle_frame中,buffer先送给解码器解码(DecodeFrameNoDelay),然后调用gst_video_decoder_finish_frame将解码后的buffer发到downstream。 DecodeFrameNoDelay解码,返回yuvdata,完成后unmap input_b
下载 https://github.com/cisco/openh264/releases 解压 编译 BUILD_LIBS=${HOME}/telecom/build_libs export PATH=${BUILD_LIBS}/bin:${PATH} make ENABLE64BIT=Yes # make DESTDIR=${BUILD_LIBS} install make install
1.安装MinGW 2.安装VS2015 3.将MinGW/bin目录加入环境变量 4.启动/MinGW/msys/1.0/msys.bat脚本(也有人说需要从VS的bash调起msys.bat) 5.将openh264源码拷贝到当前目录中 6.make OS=msvc会报x86与x64冲突 7.make OS=msvc ARCH=x86_x64编译通过 8,无法使用动态库出来的库进行编程,直接编
docker-gst-build-ubuntu/openh264-build.sh #!/bin/bash # Copyright 2017, Florent Thiery apt-get install nasm git clone https://github.com/cisco/openh264 cd openh264 make && make PREFIX="/usr" install
vs2019编译openh264 最近项目需求需要用vs2019编译openh264下载openh264后编译不过,发现是vs2019本身没有配置nasm,所以要在vs2019上配置nasm。 以下及就是我的操作仅供参考 1 下载 https://pan.baidu.com/s/1Ta_8NZQ6c_lfnX9p3ZoG5w 提取码:jiz3 2 将nasm.xml、nasm.props、nasm
我需要验证视频文件是(在Java): 视频是H.264编码的 我调查过JMF和Xuggle。 Xuggle使加载和解码文件变得更容易,并将其转换为另一种格式,但我还不知道如何确定我加载的文件的编码。 所以我想知道Xuggle是否有能力简单地返回视频类型 如果我需要自己确定,有人能给我指一些H.264格式的文档吗
H.264分析器可以用来分析学习H.264码流结构。可以比较详细的列出H.264码流中NAL的信息。
我想把一个MP4文件转换成一个MPEG-DASH视频,可以通过Chrome上的Dash-if HTML5播放器播放。我使用FFMPEG和MP4Box(来自GPAC)对视频进行转码,然后对其进行拆分,并在JavaScript控制台上不断得到一个MEDIA_ERR_SRC_NOT_SUPPORTED错误。 从网上提供的(非常稀疏的)信息(请参见此Chromium线程)来看,Chrome似乎只支持带有约
背景: 两天来,我一直在努力实现一个像Vine一样的录像机。首先,我试了MediaRecorder。但我需要的视频可能是由小视频剪辑组成的。此类不能用于录制短时视频剪辑。然后我找到了MediaCodec、FFmpeg和JavaCV。FFmpeg和JavaCV可以解决这个问题。但是我必须用许多库文件来编译我的项目。它将生成一个非常大的APK文件。所以我更喜欢用MediaCodec实现它,尽管这个类只
我正在开发一个使用MediaCodec API的H.264解码器。我试图在JNI层中调用MediaCodec java API,该函数如下所示: 稍后,我将把发送到我现有的视频呈现管道,并在上呈现。 我希望我能够编写一个Java函数来解码输入流,但这些将是一个挑战- 此资源声明- …你不能对解码的视频帧做任何事情,只能将它们呈现在表面 这里,一个已被传递在表面上呈现输出并且声明。 那么,我是否能够
我已从安装ffmpeg 3.0https://github.com/FFmpeg/FFmpeg,我正在尝试将用mepeg4第2部分编码的视频转换为H264,但我得到未知编码器“libx264”错误 我试过h264, x264, libx264,都不管用) 我查看了支持的编解码器列表 这里是h264: 我使用的是ffmpeg 3.0,从列表中可以看出,似乎不支持h264编码,只支持h264解码,对吗
但是,深入分析我所基于的解析代码,它似乎期望第5个字节(直接在起始前缀代码之后)是: 0x65-I帧 0x41-a P帧 0x67-SPS帧 0x68-PPS帧 我在其他地方也看到过很多关于这些的报道。不过,我所经历的所有单元似乎都是从(按顺序)开始的: null
我正在对来自IP摄像机的视频(H.264)和音频(AAC)进行一些集成工作。 我取得了一些进步,我可以存储视频 我现在正在尝试将流混合到MP4文件中,而不进行任何解码或编码,但到目前为止还没有找到答案。 我可以通过ffmpeg:ffmpeg-I录制手动完成。h264-i录音。aac-vcodec副本-acodec副本-absf aac_adtstoasc记录。mp4 如何使用C中的ffmpeg库执