精华内容
下载资源
问答
  • h264 x264源码

    2010-04-03 08:41:18
    x264 WINDOWS 下面可以编译,x264 WINDOWS 下面可以编译,
  • 是这样的,我的程序是这样的,就是想把已经保存好的YUV420格式的图片,压缩下,看看行不行,网上说X264就是H264的一种,所以想用X264应该就行了啊,我的源码如下: #include <asm/types.h> /* for videodev...
  • 关于H.264 x264 h264 AVC1

    2015-06-03 22:58:21
    1. H.264是MPEG4的第十部分,是一个标准。...对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。但x264非常优秀,并不比H264
    1. H.264是MPEG4的第十部分,是一个标准。
    对头,国际上两个视频专家组(VCEG和MPEG)合作提出的标准,两个专家组各有各的叫法,所以既叫H.264,也叫AVC。

    2.x264是一个编码器,他参照的标准是H.264
    对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。但x264非常优秀,并不比H264的商业编码器差。

    3.h264与AVC1都是FourCC (他俩通常在什么情况下使用呢?)
    FOURCC为AVC1,没有开始码的H.264视频,主要就是用MP4或MKV等封装的文件,也就是你平时在电脑上看的那种,它的数据流开始是1、2或者4个字节表示长度数据。x264编码出来的都是这种。
    FOURCC为H264,是带有开始码的H.264视频,一般是用于无线发射、有线广播或者HD-DVD中的。这些数据流的开始都有一个开始码:0x000001 或者 0x00000001.

    4.如果在编码符合H.264标准的文件时, 如果没有用到x264编码器,那么通常使用的是哪个编码器?(就是那个支持显卡加速的那个)
    符合H.264标准的编码器,也就是H.264的商业编码器,和免费的x264了。

    至于支持显卡加速的编码格式,根据显卡不同,支持的也不一样。大概也就是H264(x264/AVC1)、VC-1、MPEG-1MPEG-2MPEG-4、WMV3。。。当然除了H264(x264/AVC1),其他都不是H.264标准的

    http://www.cnblogs.com/oiramario/archive/2013/09/14/3321447.html

    我一直疑问为什么有些视频解码时显示格式是:H264,大部分又是:AVC1
    我在搜索编程资料时在微软的msdn上发现的:
    原文:http://msdn.microsoft.com/en-us/library/dd757808(v=vs.85).aspx
    FOURCC:AVC1   描述:H.264 bitstream without start codes.
    FOURCC:H264   描述:H.264 bitstream with start codes.


    H.264 Bitstream with Start Codes

    H.264 bitstreams that are transmitted over the air, or contained in MPEG-2 program or transport streams, or recorded on HD-DVD, are formatted as described in Annex B of ITU-T Rec. H.264. According to this specification, the bitstream consists of a sequence of network abstraction layer units (NALUs), each of which is prefixed with a start code equal to 0x000001 or 0x00000001.
    这段话的大致意思是:带有开始码的H.264视频一般是用于无线发射、有线广播或者HD-DVD中的。这些数据流的开始都有一个开始码:0x000001 或者 0x00000001.


    H.264 Bitstream Without Start Codes

    The MP4 container format stores H.264 data without start codes. Instead, each NALU is prefixed by a length field, which gives the length of the NALU in bytes. The size of the length field can vary, but is typically 1, 2, or 4 bytes.
    这段话的大致意思是:没有开始码的H.264视频主要是存储在MP4格式的文件中的。它的数据流的开始是1、2或者4个字节表示长度数据。

    原文中的"NALU"简单说是H.264格式中的最基本的单元,是一个数据包。

    http://www.mysilu.com/archiver/?tid-721741.html

    展开全文
  • x264是常见的编码库,下面是利用x264将yuyv编码为h264 x264.h #ifndef _H264ENCODER_H_ #define _H264ENCODER_H_ #include &lt;stdint.h&gt; #include &lt;stdio.h&gt; #include "x264.h&...

    x264是常见的编码库,下面是利用x264将yuyv编码为h264
    x264.h

    #ifndef _H264ENCODER_H_
    #define _H264ENCODER_H_
    
    #include <stdint.h>
    #include <stdio.h>
    
    #include "x264.h"
    
    typedef struct {
    	x264_param_t *param;
    	x264_t *handle;
    	x264_picture_t *picture;	//说明一个视频序列中每帧特点
    	x264_nal_t *nal;
    } Encoder;
    
    //初始化编码器,并返回一个编码器对象
    void h264_compress_init(Encoder * en, int width, int height);
    
    //编码一帧
    int h264_compress_frame(Encoder * en, int type, uint8_t * in, uint8_t * out);
    
    //释放内存
    void h264_compress_uninit(Encoder * en);
    
    #endif
    
    

    h264encoder.c

    static int i_pts = 0;
    void h264_compress_init(Encoder * en, int width, int height)
    {
    en->param = (x264_param_t *) malloc(sizeof(x264_param_t));
    en->picture = (x264_picture_t *) malloc(sizeof(x264_picture_t));
    x264_param_default(en->param); //set default param
    //x264_param_apply_preset(en->param,“slower”);
    //en->param->rc.i_rc_method = X264_RC_CQP;//设置为恒定码率
    //en->param->i_log_level = X264_LOG_NONE;
    //en->param->i_threads = X264_SYNC_LOOKAHEAD_AUTO;//取空缓存区使用不死锁保证
    //en->param->i_frame_total = 0;
    //en->param->i_keyint_max = 10;
    //en->param->i_bframe = 5; //两个参考帧之间b帧的数目
    //en->param->b_open_gop = 0;
    //en->param->i_bframe_pyramid = 0;
    //en->param->i_bframe_adaptive = X264_B_ADAPT_TRELLIS;
    //en->param->rc.i_bitrate = 1024 * 10;//rate 为10 kbps
    en->param->i_width = width; //set frame width
    en->param->i_height = height; //set frame height
    en->param->rc.i_lookahead = 0; //表示i帧向前缓冲区
    en->param->i_fps_num = 25; //帧率分子
    en->param->i_fps_den = 1; //帧率分母
    en->param->i_csp = X264_CSP_I422;
    x264_param_apply_profile(en->param, “high422”); //使用baseline
    
    if ((en->handle = x264_encoder_open(en->param)) == 0) {
    	printf("x264_encoder_open error!\n");
    	return;
    }
    /* Create a new pic */
    x264_picture_alloc(en->picture, X264_CSP_I422, en->param->i_width,
    				   en->param->i_height);
    en->picture->img.i_csp = X264_CSP_I422;
    en->picture->img.i_plane = 3;
    
    return;
    
    }
    
    int h264_compress_frame(Encoder * en, int type, uint8_t * in, uint8_t * out)
    {
    x264_picture_t pic_out;
    int nNal = -1;
    int result = 0;
    int i = 0;
    uint8_t *p_out = out;
    
    char *y = en->picture->img.plane[0];
    char *u = en->picture->img.plane[1];
    char *v = en->picture->img.plane[2];
    
    int is_y = 1, is_u = 1;
    int y_index = 0, u_index = 0, v_index = 0;
    int yuv422_length = 2 * en->param->i_width * en->param->i_height;
    
    //序列为YU YV YU YV,一个yuv422帧的长度 width * height * 2 个字节
    for (i = 0; i < yuv422_length; ++i) {
    	if (is_y) {
    		*(y + y_index) = *(in + i);
    		++y_index;
    		is_y = 0;
    	} else {
    		if (is_u) {
    			*(u + u_index) = *(in + i);
    			++u_index;
    			is_u = 0;
    		} else {
    			*(v + v_index) = *(in + i);
    			++v_index;
    			is_u = 1;
    		}
    		is_y = 1;
    	}
    }
    
    switch (type) {
    case 0:
    	en->picture->i_type = X264_TYPE_P;
    	break;
    case 1:
    	en->picture->i_type = X264_TYPE_IDR;
    	break;
    case 2:
    	en->picture->i_type = X264_TYPE_I;
    	break;
    default:
    	en->picture->i_type = X264_TYPE_AUTO;
    	break;
    }
    
          en->picture->i_pts=pts++;
    //printf("en->handle->param.i_csp:%08x\n", en->handle->param.i_csp);
    if (x264_encoder_encode(en->handle, &(en->nal), &nNal, en->picture,
    						&pic_out) < 0) {
    	printf("x264_encoder_encode error,type:%08x!\n",
    		   en->picture->img.i_csp);
    	return -1;
    }
        
    for (i = 0; i < nNal; i++) {
    	memcpy(p_out, en->nal[i].p_payload, en->nal[i].i_payload);
    	p_out += en->nal[i].i_payload;
    	result += en->nal[i].i_payload;
    }
    
    return result;
    
    }
    
    void h264_compress_uninit(Encoder * en)
    {
    if (en->picture) {
    x264_picture_clean(en->picture);
    free(en->picture);
    en->picture = 0;
    }
    if (en->param) {
    free(en->param);
    en->param = 0;
    }
    if (en->handle) {
    x264_encoder_close(en->handle);
    }
    free(en);
    
    return;
    
    }
    
    展开全文
  • H.264 x264 h264 AVC1的关系和区别

    千次阅读 2016-12-19 17:54:32
    H.264是MPEG4的第十部分,是一个标准。 对头,国际上两个视频专家组(VCEG和MPEG)合作提出的标准,两个专家组各有各的叫法,所以既叫H.264,也叫AVC。 x264是一个编码器,他参照的标准...但x264非常优秀,并不比H264
    1. H.264是MPEG4的第十部分,是一个标准。
      对头,国际上两个视频专家组(VCEG和MPEG)合作提出的标准,两个专家组各有各的叫法,所以既叫H.264,也叫AVC。

    2. x264是一个编码器,他参照的标准是H.264。
      对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。但x264非常优秀,并不比H264的商业编码器差。

    3. h264与AVC1都是FourCC (他俩通常在什么情况下使用呢?)
      FOURCC为AVC1,没有开始码的H.264视频,主要就是用MP4或MKV等封装的文件,也就是你平时在电脑上看的那种,它的数据流开始是1、2或者4个字节表示长度数据。x264编码出来的都是这种。
      FOURCC为H264,是带有开始码的H.264视频,一般是用于无线发射、有线广播或者HD-DVD中的。这些数据流的开始都有一个开始码:0x000001 或者 0x00000001.

    4. 如果在编码符合H.264标准的文件时, 如果没有用到x264编码器,那么通常使用的是哪个编码器?(就是那个支持显卡加速的那个)
      符合H.264标准的编码器,也就是H.264的商业编码器,和免费的x264了。
      至于支持显卡加速的编码格式,根据显卡不同,支持的也不一样。大概也就是H264(x264/AVC1)、VC-1、MPEG-1、MPEG-2、MPEG-4、WMV3。。。当然除了H264(x264/AVC1),其他都不是H.264标准的。

    展开全文
  • 关于H.264 x264 h264 AVC1之间的那些事

    千次阅读 2015-10-08 14:24:31
    1. H.264是MPEG4的第十部分,是一个标准。...对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。但x264非常优秀,并不比
    1. H.264是MPEG4的第十部分,是一个标准。
    对头,国际上两个视频专家组(VCEG和MPEG)合作提出的标准,两个专家组各有各的叫法,所以既叫H.264,也叫AVC。
    
    2.x264是一个编码器,他参照的标准是H.264。
    对头,H.264是需要付费的编码格式,而x264是符合H.264标准的一个开源项目,是免费的,也就是H264的一个简化版,不支持某些高级特性。但x264非常优秀,并不比H264的商业编码器差。
    
    3.h264与AVC1都是FourCC   (他俩通常在什么情况下使用呢?)
    FOURCC为AVC1,没有开始码的H.264视频,主要就是用MP4或MKV等封装的文件,也就是你平时在电脑上看的那种,它的数据流开始是1、2或者4个字节表示长度数据。x264编码出来的都是这种。
    FOURCC为H264,是带有开始码的H.264视频,一般是用于无线发射、有线广播或者HD-DVD中的。这些数据流的开始都有一个开始码:0x000001 或者 0x00000001.
    
    4.如果在编码符合H.264标准的文件时, 如果没有用到x264编码器,那么通常使用的是哪个编码器?(就是那个支持显卡加速的那个)
    符合H.264标准的编码器,也就是H.264的商业编码器,和免费的x264了。
    至于支持显卡加速的编码格式,根据显卡不同,支持的也不一样。大概也就是H264(x264/AVC1)、VC-1MPEG-1、MPEG-2、MPEG-4、WMV3。。。当然除了H264(x264/AVC1),其他都不是H.264标准的
    展开全文
  • h.264 x.264

    2017-12-14 14:27:00
    x264是视频编码器,H.264是视频编码格式。 x264编出来的东西就是h.264的。 举个例子来说,x264就好比画图或者photoshop,h.264就好比jpg,bmp等等。 h.264是编码本身,代表文档标准和方法。 x264是开源编码器,是...
  • X264编码H264视频

    2016-12-11 16:35:28
    通过V4l2 接口获取摄像头YUV数据,再将该数据使用X264编码成h264视频。详细内容请见博客http://blog.csdn.net/li_wen01/article/details/53572642
  • x264进行h264编码

    2020-12-07 15:01:57
    前文中介绍了ffmpeg进行h264软编码这里介绍x264进行软编码 下面代码可以理解为类似于ffmpeg中编码器的上下文 - (BOOL)init_x264_encoder_with_config:(XC_VideoEncode_X264_Config *)config{ self.config = ...
  • h.264 X264源码

    2010-07-03 18:08:23
    基于H.264视频标准的 编码器源码
  • X264编码h264

    千次阅读 2016-05-18 18:14:32
    现在基本上整个系统能够实现服务器实时编码打包传输给客户端,客户端实时解码并显示的功能,故将上一阶段的工作整理记录一下,将我使用x264进行h.264编码的过程,使用jrtplib进行h264数据包传输的过程以及使用ffmpeg...
  • 利用ffmpeg x264 编解码h264h264编码的mp4解码保存为rgb ppm文件,然后又把rgb 编码为h264格式
  • X264lib Linux下h264

    2014-03-15 11:55:26
    X264lib linux下h264源码库
  • x264编码yuv为h264代码

    2017-05-08 20:46:16
    代码简洁,演示了x264编码yuv为h264的过程,可以直接拷贝使用,便于学习。
  • x264源码,H264编码

    2013-07-15 11:22:51
    x264源码,可以将yuv的格式数据流转换为H264的数据流
  • H264X264区别

    千次阅读 2010-05-03 19:55:00
    X264 是实现这种编码方式的一种编码器,就像填充这种框架的实物但是这个框架比较广泛,有各种档次级别,X264 实现了一部分,有一些编码器采用了 H.264 的一些标准,但是又用了其他技术。现在常用的一些 H.264 编码器...
  • 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...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,889
精华内容 1,955
关键字:

h264x264