当前位置: 首页 > 软件库 > 程序开发 > 多媒体处理 >

OpenH264

思科的 H.264 编码器
授权协议 BSD
开发语言 C/C++
所属分类 程序开发、 多媒体处理
软件类型 开源软件
地区 不详
投 递 者 江敏学
操作系统 跨平台
开源组织 Cisco
适用人群 未知
 软件概览

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库执