您的位置:首页 > 其它

FFmpeg-利用ffplay.c保存视频解码后的数据yuv420

2016-05-17 20:29 483 查看
=====添加如下代码

#include <unistd.h>

#include <fcntl.h>

static int get_video_frame(VideoState *is, AVFrame *frame)

{

int got_picture;

if ((got_picture = decoder_decode_frame(&is->viddec, frame, NULL)) < 0)

return -1;

if (got_picture) {

double dpts = NAN;

static int i_fd = -1;

int i_width = is->viddec_width;

int i_height = is->viddec_height;

if (i_fd < 0) {

char p_buf[64];

sprintf(p_buf, "record_%dx%d.yuv", i_width, i_height);

i_fd = open(p_buf, O_WRONLY | O_CREAT, 0644);

}

if (i_fd > 0) {

int y;

for (y = 0; y < i_width; ++y) {

write(i_fd, frame->data[0] + (y * frame->linesize[0]), i_height);

}

for (y = 0; y < i_width/2; ++y) {

write(i_fd, frame->data[1] + (y * frame->linesize[1]), i_height/2);

}

for (y = 0; y < i_width/2; ++y) {

write(i_fd, frame->data[2] + (y * frame->linesize[2]), i_height/2);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: