精华内容
下载资源
问答
  • 本资源是通过opencv 采集摄像头图像(bgr24图像格式),使用libx264将(bgr24)图像编码为h264视频编码格式。开发环境位vs2013. 详情请参考博客:http://blog.csdn.net/qq_21193563/article/details/78692908
  • qt5.15.0 编译window X64的webengine dll动态文件,支持H264方式视频播放。 编译此资源6小时,且爱且珍惜。 内核参数: QtWebEngine/5.15.0 Chrome/80.0.3987.163 Safari/537.36
  • 摄像头是USB摄像头,开发环境是VS2013+opencv3.0,采集出的数据实时编码为H264
  • cefsharp88.2.9_h264_x86_x64_支持视频
  • h264编码的ps文件,可学习ps文件格式或测试gb28181用。
  • windows下利用x264库视频编码h264源码,采用VS2012开发环境。非常简洁的代码。将yuv编码为h264.
  • h264文件(1080p、3840x2160、480p),压缩文档中包含了以上三个分辨率的264视频
  • x264 H.264/MPEG-4AVC

    2018-09-16 00:09:05
    x264是一种免费的、具有更优秀算法的符合H.264/MPEG-4AVC视频压缩编码标准格式的编码库
  • 640-480-25-vbr-h264.h264

    2020-06-30 19:14:57
    如题,亲测可用的h264文件,测试的时候是解码成YUV420SP格式的,可以播放,播放时长30秒左右,赚积分真不易呀
  • libx264(h264)编码

    2018-06-19 10:10:14
    H264编码,libx264。 ffmpeg等工具需要使用的编码。。。。
  • h264解码测试文件,多个分辨率:800x480,1024x600,1280x720,1920x1080,每种分辨率都有:单个文件、一帧一个文件的,便于测试
  • h264 x264源码

    2010-04-03 08:41:18
    x264 WINDOWS 下面可以编译,x264 WINDOWS 下面可以编译,
  • 今天小编就为大家分享一篇python opencv图片编码为h264文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 用大华提供的回调接口获取标准的H264裸码,可实现标准H264裸码封装MP4文件+保存.h264文件+实时预览。
  • CefSharp 支持mp3、mp4视频播放 版本:88.2.90 平台:x86/x64(都支持) 使用:先在Nuget中安装对应的版本,然后解压资源把里面的文件夹复制替换到:项目根目录\packages,重新编译项目即可。
  • vs2013工程,利用ffmpeg将rgb数据先转换为yuv420格式的数据,然后再编码为h264数据,内有ffmpeg头文件和库,直接编译,就可以运行。
  • H264x264简单介绍

    千次阅读 2014-04-24 16:34:10
    1. 引 言 视频编解码技术是流媒体技术的关键技术之一,从 H.261视频编码建议,到 H.262/3、MPEG-1/2/4等都有一个共同的不断追求的...于是 IEO/IEC 和 ITU-T 两大国际标准化组织联手制定了视频新标准 H.264[1]来解决

    1. 前言

    本文分析了 H.264 视频编码器的原理,对当今流行的 H.264编码器进行了比较,以 X264 开源编码器为例进行了源码级的分析,详细介绍了 X264 中的主要数据结构和函数调用关系。本文的分析能使用户对 H.264 视频编码原理有更深入的认识,并为自己的应用设计独特的视频编码器,提高视频编码性能。

    2. H.264 编码器原理

    2.1 H.264编码器的功能结构

    如下图所示,H.264 标准压缩系统由视频编码层(Video Coding Layer,VCL)和网络提取层(Network Abstraction Layer,NAL)两部分组成。VCL 层主要包括帧内预测,帧间预测、变换量化、熵编码等压缩单元。NAL 层则用于为 VCL 层提供一个与网络无关的统一接口,它负责对视频数据进行封装打包后使其在网络中传送,它采用统一的数据格式,包括单个字节的包头信息、多个字节的视频数据与组帧、逻辑信道信令、定时信息、序列结束信号等。包头中包含存储标志和类型标志。存储标志用于指示当前数据不属于被参考的帧。类型标志用于指示图像数据的类型。VCL 可以传输按当前的网络情况调整的编码参数。


    2.2 H.264 编码器工作流程

    如下图所示,编码器采用的是变换和预测的混合编码法。输入的帧或场 Fn 以宏块为单位被编码器处理。首先,按帧内或帧间预测编码的方法进行处理。若采用帧内预测编码,其预测值 PRED 是由当前片中当前块的左侧和上侧已编码的象素点推出的,而如果采用帧间预测编码,其预测值 PRED 是由已编码的视频帧/场通过运动补偿得到的。预测值 PRED 和当前块相减后,产生一个残差块 Dn,经变换,量化后产生的变化系数 X 再经熵编码,与解码需要信息一起组成一个压缩码流, 经NAL 供传输和存储用。 为进一步提供预测用的参考图像,编码器还需要有重建图像的功能。 即将残差图像经反量化, 反变换后得到 Dn′与预测值PRED相加,得到 uFn′,经过滤波后得到 Fn′即为重建图像,可用于参考图像。


    3. X264 开源编码器分析

    3.1 三大开源编码器

    目前 H.264的开源编码器主要有三类:JM,T264和 X264。JM 作为 H.264 的官方测试源码,由德国 hhi 研究所负责开发。它实现了 264 所有的特性,但其程序结构冗长,只考虑引入各种新特性以提高编码性能,忽视了编码复杂度,其编码复杂度极高,不宜实用。T264是中国视频编码自由组织联合开发的H.264编解码器, 编码器能编码输出标准的H.264码流,但解码器只能解 T264 编码器生成的码流,目前已经停止更新。X264 是网上自由组织联合开发的兼容 264 标准码流的编码器,它注重实用,和 JM 相比,在不明显降低编码性能的前提下,努力降低编码的计算复杂度,编码效率很高。

    3.2 X264流程

    因为 X264 编码器的高效率和高性能,应用之中较多使用,下面对 X264 进行源码分析,进一步分析 H.264 的编码器原理。

    在 X264 编码器的调度中最重要的是 Encode 函数,是对整个视频序列的 H.264 编码。在函数中,首先进行了函数的初始化操作,然后判断是否已经编码完毕,如果没有则继续读取一帧数据到缓冲区,然后进行帧解码;如果编码完毕则退出编码流程。详细函数关系如下图所示:


    其中,x264_encoder_open()这个函数是对不正确的参数进行修改,并对各结构体参数和cabac 编码,预测等需要的参数进行初始化。x264_picture_alloc()这个函数分配能容纳一帧sizeof(x264_picture_t)字节数的空间,然后进行初始化。p_read_frame()这个函数就是一次读入一帧到刚分配的空间,这里的数据都是原始的视频图像数据。Encode_frame()这个函数对视频序列其中一帧进行 264 编码。x264_picture_clean()和 x264_encoder_close()两个函数主要是编码后的处理工作,如将帧数据全置零等。

    在 Encode_frame() 函数中开始上文提到的 VCL 编码和 NAL 编码,其中x264_encoder_encode()函数为 VCL 层编码, 其详细流程如下图所示。 其中, Setup new frame from picture 主要是将图片的原始数据赋值给一个未使用的帧,用于编码。Get frame to be encoded 主要是帧管理的操作,从编码帧的缓存中取出一帧来对他进行编码。Setup frame context 主要是对即将编码帧进行帧类型的预设定。 Init ,Write the bitstream主要是对参考列表的初始化,片头的初始化,以及对将编码后数据写入比特流进行传输。Update encoder state这部分是一帧编码后的编码器的更新处理部分,主要有参考帧的管理,去块滤波,象素内插等工作。Compute/Print statistics这部分并不属于编码的工作,只是对其中编码性能的统计计算和显示工作。


    x264_slice_write()函数是编码中最重要的函数,以上所介绍的预测编码等都在这个函数中实现的。Init()函数主要是初始化的一些操作。x264_macroblock_cache_load()函数主要是把当前宏块的 up 宏块和 left 宏块的预测模式,非零系数值等数据加载进来,放到一个数组里面,供当前模块参考使用。 x264_macroblock_analyse()函数主要是模式选择的问题,通过对SAD 值或者其他 COST 值的分析,确定当前宏块的编码类型。以 I 帧模块为例,我们可以将它分割成16个4*4的块,如果这16个块的sad加起来小于按16*16的方式计算出来的sad值,我们就将这个 16*16 的块分成 16 个 4*4 的块进行编码,否则采用 16*16 的方式编码。x264_macroblock_encode()函数即是依据上面所确定的编码模式对当前宏块进行 264 编码。CABAC/CAVLC 部分为熵编码部分。


    3.3 预测编码算法

    帧内预测编码的预测值 P 是在一定的预测模式下,通过邻近已编码的象素值推出的。H.264 中的帧内预测分为 4×4 子块和 16×16 子块以及对 8x8 子块的预测模式。在 x264 代码中,帧内预测模式的算法主要在 predict.c 中。其中亮度象素有三种方式:16x16 宏块预测模式,8x8 子块预测模式,4x4 子块预测模式;色度象素有只有 8x8 色度预测模式。 帧间预测编码主要包括运动估计,运动补偿等,其中运动估计尤为重要。在 x264 中帧间运动估计有三种算法可供选择 X264_ME_DIA,X264_ME_HEX,X264_ME_ESA。

    X264_ME_ESA::全搜索法,也称为穷尽搜索法,是对搜索范围内所有可能的候选位置计算 SAD(i,j)值,从中找出最小 SAD(绝对差值和),其对应偏移量即为所求运动矢量。此算法虽计算量大,但最简单、可靠,找到的必为全局最优点。

    X264_ME_DIA::菱形搜索,搜索模板的形状和大小不但影响整个算法的运行速度,而且也影响它的性能。块匹配的误差实际上是在搜索范围内建立了误差表面函数,全局最小点即对应着最佳运动矢量。基于这两点事实,菱形算法采用了两种搜索模板,分别是有 9个检测点的大模板 LDSP(Large Diamond Search Pattern)和有 5 个检测点的小模板SDSP(SmallDiamond Search Pattern),搜索时先用大模板计算,当最小块误差 MBD点出现在中心点处时,将大模板 LDSP 换为 SDSP,再进行匹配计算,这时 5 个点中的 MBD 即为最优匹配点。

    X264_ME_HEX::六边形搜索,与菱形搜索相似,只是搜索形状为六边形。






    展开全文
  • h264测试视频

    2017-11-16 16:12:22
    h264编码视频数据,用于live555 rtsp数据测试 ,测试成功,可以用vlc播放。包含两个测试视频文件.h264文件和.264文件,
  • cef chromium-75.0.3770.100-win64(支持h264)编译好的Release包。 资源全称:cef_binary_cef_binary_75.1.16+g16a67c4+chromium-75.0.3770.100_windows64_windows64 对应cef版本:75.1.16 对应chromium版本:75.0....
  • 自行编译的支持H264编码的CefSharp,x86和x64均支持,可以通过 https://html5test.com 验证。 使用方法 1.Nuget安装CefSharp 2.编译后直接替换libcef.dll文件
  • 支持h264和h265视频流封装成mp4文件和推流到rtmp服务器,资源是一个完整的VS工程,VS版本为2015,可直接运行。主要代码文件为zhf_h264_to_mp4_file.h和zhf_pushstream_rtmp.h
  • H264视频--x264编解码原理详解

    千次阅读 2019-02-22 21:20:21
    1.一般使用ffmpeg来对音视频数据进行处理,视频编码的底层为x264。该链接为FFMPEG的具体使用。 2.关于X264的解码原理来自该链接:x264代码剖析。 3.关于自己对X264编解码原理的总结。 函数总图如下: 第一阶段...

    1.一般使用ffmpeg来对音视频数据进行处理,视频编码的底层为x264该链接为FFMPEG的具体使用

    2.关于X264的解码原理来自该链接:x264代码剖析

    3.关于自己对X264编解码原理的总结。

    函数总图如下:

    第一阶段:x264的入口函数为main()。main()函数首先调用parse()解析输入的参数,parse()首先调用x264_param_default()为保存参数的x264_param_t结构体赋默认值;然后在一个大循环中通过getopt_long()解析通过命令行传递来的存储在argv[]中的参数,并作相应的设置工作;最后调用select_input()和select_output()完成输入文件格式(yuv,y4m等)和输出文件格式(裸流,mp4,mkv,FLV等)的设置。

    第二阶段:然后调用encode()编码YUV数据。encode()首先调用x264_encoder_open()打开编码器;接着在一个循环中反复调用encode_frame()一帧一帧地进行编码;最后在编码完成后调用x264_encoder_close()关闭编码器。encode_frame()则调用x264_encoder_encode()将存储YUV数据的x264_picture_t编码为存储H.264数据的x264_nal_t。

    1.main函数分析:主要是parse( argc, argv, ¶m, &opt)和encode( ¶m, &opt )函数。

    2.parse()函数功能:

    x264_param_default( &defaults );

    int c = getopt_long( argc, argv, short_options, long_options, NULL );判断命令行输入是否正确

    x264_param_default_preset( param, preset, tune ) < 0 )

    int c = getopt_long( argc, argv, short_options, long_options, &long_options_index );解析命令行

    output_filename = optarg;

    opt->qpfile = x264_fopen( optarg, "rb" );

    2.encode()编码YUV为H.264码流,主要流程为:

    (1)调用x264_encoder_open()打开H.264编码器;

    h = x264_encoder_open( param );

    (2)调用x264_encoder_parameters()获得当前的参数集x264_param_t,用于后续步骤中的一些配置;

    x264_encoder_parameters( h, param );

    (3)调用输出格式(H.264裸流、FLV、mp4等)对应cli_output_t结构体的set_param()方法,为输出格式的封装器设定参数。其中参数源自于上一步骤得到的x264_param_t;

    cli_output.set_param( opt->hout, param )

    (4)如果不是在每个keyframe前面都增加文件头(SPS/PPS/SEI)的话,就调用x264_encoder_headers()在整个码流前面加输出文件头(SPS/PPS/SEI);将文件头写入到输出文件opt->out.

    (i_file = cli_output.write_headers( opt->hout, headers ))

    (5)进入一个循环中进行一帧一帧的将YUV编码为H.264,主要大概程序流程如下:

    for( ; !b_ctrl_c && (i_frame < param->i_frame_total || !param->i_frame_total); i_frame++ )
        {
            //从输入源中获取1帧YUV数据,存于cli_pic  
            //cli_vid_filter_t可以认为是x264一种“扩展”后的输入源,可以在像素域对图像进行拉伸裁剪等工作。  
            //原本代表输入源的结构体是cli_input_t
    		if( filter.get_frame( opt->hin, &cli_pic, i_frame + opt->i_seek ) )
                break;
     
    		//初始化x264_picture_t结构体pic
            x264_picture_init( &pic );
     
    		//cli_pic到pic
            convert_cli_to_lib_pic( &pic, &cli_pic );
     
    		//编码pic中存储的1帧YUV数据
            i_frame_size = encode_frame( h, opt->hout, &pic, &last_dts );	
            
    		//释放处理完的YUV数据
            if( filter.release_frame( opt->hin, &cli_pic, i_frame + opt->i_seek ) )
                break;
            
    }

    (6)编码即将结束的时候,进入另一个循环,输出编码器中缓存的视频帧:

           a)不再传递新的YUV数据,直接调用encode_frame(),将编码器中缓存的剩余几帧数据编码输出出来。
           b)调用print_status()输出一些统计信息。

    (7)调用x264_encoder_close()关闭H.264编码器。

    encode_fram调用了x264_encoder_encode()函数是其核心部分,具体的H.264视频编码算法均在此模块。

    x264_encoder_encode()的流程大致如下:

     x264_frame_pop_unused():获取1个x264_frame_t类型结构体fenc。如果frames.unused[]队列不为空,就调用x264_frame_pop()从unused[]队列取1个现成的;否则就调用x264_frame_new()创建一个新的。

            x264_frame_copy_picture():将输入的图像数据拷贝至fenc。

            x264_frame_expand_border_mod16( h, fenc );对图像进行插值确保图像的长宽均为宏块16的倍数。

            x264_lookahead_put_frame(h,fenc):将fenc放入lookahead.next.list[]队列,等待确定帧类型。

            h->i_frame++;

            x264_lookahead_get_frames(h):通过lookahead分析帧h->frames.current[0]类型。该函数调用了x264_slicetype_decide(),x264_slicetype_analyse()和x264_slicetype_frame_cost()等函数。经过一些列分析之后,最终确定了帧类型信息,并且将帧放入frames.current[]队列。

            x264_frame_shift():从frames.current[]队列取出1帧h->fenc用于编码。是栈还是队列?队列。

            x264_reference_update():更新参考帧队列。frames.reference[]。

           根据fenc帧的类型来做选择:

            x264_reference_reset():如果fenc帧为IDR帧,调用该函数清空参考帧列表。

            x264_reference_hierarchy_reset():如果是非IDR的I帧、P帧、B帧(可做为参考帧),调用该函数。

            x264_reference_build_list():创建参考帧列表list0和list1。

            x264_ratecontrol_start():开启码率控制。

            x264_slice_init():创建 Slice Header。

            x264_slices_write():编码数据(最关键的步骤)。其中调用了x264_slice_write()完成了编码的工作(注意“x264_slices_write()”和“x264_slice_write()”名字差了一个“s”)。

            x264_encoder_frame_end():编码结束后做一些后续处理,例如记录一些统计信息。其中调用了x264_encoder_encapsulate_nals()封装NALU(添加起始码),调用x264_frame_push_unused()将fenc重新放回frames.unused[]队列,并且调用x264_ratecontrol_end()结束码率控制。

    调用x264_slices_write()进行编码。该部分是libx264的核心,在后续文章中会详细分析。H.264并没有明确规定一个编解码器如何实现,而是规定了一个编码后的视频比特流的句法和比特流的解码方法,在实现上有较大的灵活性。

       H.264/AVC编码器的功能组成如下图所示,接下来是如何解释该图:

    H264编码原理:首先对每一帧图像进行宏块划分,有不同的划分方式,然后对相邻图像进行分组。在这样一组帧中,经过编码后,我们只保留第一帖的完整数据,其它帧都通过参考上一帧计算出来。我们称第一帧为IDR/I帧,其它帧我们称为P/B帧,这样编码后的数据帧组我们称为GOP。一个GOP中可以有很多的I帧,但只能有一个IDR帧。IDR帧也属于I帧。所以把几帧图像分为一组(GOP,也就是一个序列),为防止运动变化,帧数不宜取多。然后将每组内各帧图像定义为三种类型,即I帧、B帧和P帧;定义好之后以I帧做为基础帧,以I帧预测P帧,再由I帧和P帧预测B帧,最后将I帧数据与预测的差值信息(p帧b帧)进行存储和传输。

    H264存储原理:在H264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,以I帧开始,到下一个I帧结束。H.264 引入 IDR 图像是为了解码的重同步,当解码器解码到 IDR 图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现重大错误,在这里可以获得重新同步的机会。IDR图像之后的图像永远不会使用IDR之前的图像的数据来解码。一个序列就是一段内容差异不太大的图像编码后生成的一串数据流。当运动变化比较少时,一个序列可以很长,因为运动变化少就代表图像画面的内容变动很小,所以就可以编一个I帧,然后一直P帧、B帧了。当运动变化多时,可能一个序列就比较短了,比如就包含一个I帧和3、4个P帧。

    I帧:基本帧,帧内编码帧 ,关键帧,完整保留了该图像的所有信息,相比原始数据帧,压缩率7~10;解码时只需要本帧数据就可以完成(因为包含完整画面),不需要其他帧作为参考同时是PB帧的参考帧,I帧是帧组GOP的基础帧(第一帧),在一组中只有一个I帧;

    P帧:前向预测编码帧(只参考前面最靠近它的I帧或P帧)。是在I 帧的基础上取与I 帧的差异,压缩率20;P帧表示的是这一帧跟之前的一个关键帧(或P帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面(P帧的预测与重构:P帧是以I帧为参考帧,在I帧中找出P帧“某点”的预测值和运动矢量,取预测差值和运动矢量一起传送。在接收端根据运动矢量从I帧中找出P帧“某点”的预测值并与差值相加以得到P帧“某点”样值,从而可得到完整的P帧。)。也就是差别帧,P帧没有完整画面数据,只有与前一帧的画面差别的数据。P帧是I帧后面相隔1~2帧的编码帧;

    B帧:双向预测内插编码帧(由前面的I或P帧和后面的P帧来进行预测的)。也就是B帧记录的是本帧与前后帧的差别,B帧的压缩率高,解码时CPU会比较累;压缩率50;要解码B帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面(B帧的预测与重构:B帧以前面的I或P帧和后面的P帧为参考帧,“找出”B帧“某点”的预测值和两个运动矢量,并取预测差值和运动矢量传送。接收端根据运动矢量在两个参考帧中“找出(算出)”预测值并与差值求和,得到B帧“某点”样值,从而可得到完整的B帧。)。

     我们若要学习H.264编码算法,最好就是按照帧内预测帧间预测变换与量化熵编码环路滤波的顺序依次学习。除此之外,网络适配层、率失真优化、码率控制也是非常重要的学习点。其中帧内预测与帧间预测处于Analysis模块,变换与量化处于Encode模块,熵编码处于Entropy Encoding模块,而重建过程中的滤波处于Filter模块。

    1)帧间和帧内预测(Estimation)
    帧内预测编码是H.264区别于其它编码标准的一个重要特征,用来缩减图像的空间冗余.为了提高H.264帧内编码的效率,帧内压缩是生成I帧的算法,所以压缩率不是很高。相对于直接对该帧编码而言,可以大大减小码率.

    帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿.H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能,帧间压缩是生成B帧和P帧的算法。它通过比较本帧与相邻帧之间的差异,仅记录本帧与其相邻帧的差值,这样可以大大减少数据量,压缩率较高。

    宏块分析函数x264_macroblock_analyse(),该模块主要完成2大任务:一是对于帧内宏块,分析帧内预测模式;二是对于帧间宏块,进行运动估计,分析帧间预测模式。

    2)变换(Transform)
    在变换方面,H.264使用了基于4×4像素块的类似于DCT的变换,但使用的是以整数为基础的空间变换,不存在反变换.与浮点运算相比,整数DCT变换会引起一些额外的误差,但因为DCT变换后的量化也存在量化误差,与之相比,整数DCT变换引起的量化误差影响并不大.此外,整数DCT变换还具有减少运算量和复杂度,有利于向定点DSP移植的优点.变换后得到的DCT系数是与每个像素都相关的,这些系数代表了被变换数据的基础色调与细节.。

    3)量化(Quantization)
    量化是在不降低视觉效果的前提下减少图像编码长度,减少视觉恢复中不必要的信息。H264采用标量量化技术,它将每个图像样点编码映射成较小的数值。H.264中可选32种不同的量化步长,这与H.263中有31个量化步长很相似,但是在H.264中,步长是以12.5%的复合率递进的,而不是一个固定常数.在H.264中,变换系数的读出方式也有2种:之字形(Zigzag)扫描和双扫描.大多数情况下使用简单的之字形扫描;双扫描仅用于使用较小量化级的块内,有助于提高编码效率.h.264在DCT变换后对DCT系数进行了量化,量化能有效去除相邻像素间的空间冗余,也就是说会抹去元素数据的部分细节。比较理想的情况是量化抹去人眼无法识别的细节部分,但是在低码率的情况下就会导致原始数据的细节丢失过多。而且,DCT变换时基于块的,即将8x8或者4x4的像素残差进行变换后得到8x8或者4x4DCT系数,此时如果进行了低码率的量化,就会使得相邻两个块的相关性变差,从而出现块效应。.

    4)环路滤波(Loop Filter)
    为了减轻和消除视频图像中的块效应,通常会使用滤波器对块边界处的像素进行滤波以平滑像素值的突变.同时可以达到降低噪音的效果

    5)熵编码
    视频编码处理的最后一步就是熵编码,在H.264中采用了2种不同的熵编码方法:通用可变长编码(UVLC)和基于文本的自适应二进制算术编码(CABAC).熵编码即编码过程中按熵原理不丢失任何信息的编码。
     

    展开全文
  • 提供一下x264的源代码,供大家学习下。做视频编码的可以看看。
  • h264x264的区别

    千次阅读 2017-08-15 09:18:40
    H.264H.264是ITU(International Telecommunication Unite 国际通信联盟)和MPEG(Motion Picture Experts Group 运动图像专家组)联合制定的视频编码标准。 在ITU的标准里称为H.264,在MPEG的标准里是MPEG-4...

    H.264:

    H.264是ITU(International Telecommunication Unite 国际通信联盟)和MPEG(Motion Picture Experts Group 运动图像专家组)联合制定的视频编码标准。

    在ITU的标准里称为H.264,在MPEG的标准里是MPEG-4的一个组成部分——MPEG-4 Part 10,又叫Advanced Video Codec,因此常常称为MPEG-4 AVC或直接叫AVC。

    与MPEG-4一样,经过H.264压缩的视频文件一般也是采用.avi作为其后缀名,同样不容易辨认,只能通过解码器来自己识别。

    x264:

    x264是一个采用GPL(General Public License)授权的视频编码开源软件。x264的主要功能在于进行H.264/MPEG-4 AVC的视频编码,而不是作为解码器之用。

    x264是一种免费的、具有更优秀算法的H.264/MPEG-4 AVC视频压缩编码格式。它同xvid一样都是开源项目,但x264是采用H.264标准的,而xvid是采用MPEG-4早期标准的。因此,在通常情况下,x264压缩出的视频文件在相同的质量下要比xvid压缩出的文件要小,或者也可以说,在相同体积下比xvid压缩出的文件质量要好。

    展开全文
  • x264实时编码摄像头流到H.264格式
  • cefsharp88.2.9_h264_x86_x64_完美支持mp4视频,拷两个文件就搞定,然后重新生成一下项目
  • H264官方文档(中文).pdf

    2018-08-22 11:52:33
    H264官方文档(中文).pdf
  • 利用ffmpeg x264 编解码h264h264编码的mp4解码保存为rgb ppm文件,然后又把rgb 编码为h264格式
  • linux C语言实现yuyv拍照通过x264转为h264通过udp发送到上位机通过ffmpeg中的ffplay播放,播放命令:ffplay -f h264 udp://192.168.1.100:6666,代码里修改ip地址和分辨率就可
  • mod_h264_streaming-2.2.7-2.4.x-x64-vc11.zip mod_h264_streaming-2.2.7-2.4.x-x64-vc14.zip mod_h264_streaming-2.2.7-2.4.x-x64.zip mod_h264_streaming-2.2.7-2.4.x-x86-vc11.zip mod_h264_streaming-2.2.7-2.4....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,025
精华内容 20,010
关键字:

h264x264