.y4m

muxers.c

typedef struct {
    FILE *fh;   //文件指针,用来保存一个已打开的文件的指针
    int width, height; //宽、高
    int next_frame;  //下一帧,计数用 
    int seq_header_len, frame_header_len; /*  */
    int frame_size;  //帧尺寸
} y4m_input_t;   /*  */

#define Y4M_MAGIC "YUV4MPEG2"
#define MAX_YUV4_HEADER 80
#define Y4M_FRAME_MAGIC "FRAME"
#define MAX_FRAME_HEADER 80

/*
 * 名称:
 * 功能:打开文件:"*.y4m"
 * 参数:文件名,typedef void *hnd_t,x264_param_t
 * 注意:
 * 资料:YUV4MPEG2这种文件格式是一种以头文件存储视频规格的未压缩视频序列。简单来说,在原始的yuv序列的起始和每一帧的头部都加入了纯文字形式的视频参数信息,包括分辨率、帧率、逐行/隔行扫描方式、高宽比(aspect ratio),以及每一帧起始的”FRAME ”标志位。
 *   y4m到yuv的转换 了解了y4m的封装形式后,我们的工作就变得相当机械。只要把头文件和每帧的标志位去除即可,剩下的生肉既是原封不动的yuv数据,如果是4:2:0也不需要进一步的转换修整工作。
*/
int open_file_y4m( char *psz_filename, hnd_t *p_handle, x264_param_t *p_param )

{

... ...

 

}

http://wmnmtm.blog.163.com/

下载了一个.y4m的视频序列测试文件,用UltraEdit打开查看,截几个图上来

.y4m
 
 
.y4m
 
 
.y4m
 
 
.y4m