Click here to Skip to main content
12,066,626 members (56,029 online)
Rate this:
 
Please Sign up or sign in to vote.
See more: C++ encoding ffmpeg
I use this way to convert bitmap to yuv Save bitmap to video (libavcodec ffmpeg) and then save the buffer like this: FILE* fp=fopen("aha.yuv","w"); if(!fp) return NULL; fwrite(outPic->data[0],nbytes,1,fp); fwrite(outBuffer,nbytes,1,fp); fclose(fp); but it has only several lines.All most all of the .yuv file is gray. I am sure the inbuffer points to the input BGR32 data.So where is wrong? is The way to save the outBuffer right?
http://stackoverflow.com/questions/1359620/save-bitmap-to-video-libavcodec-ffmpeg[^]
Posted 20-Apr-13 7:59am
Edited 20-Apr-13 8:00am
v2

1 solution

Rate this: bad
 
good
Please Sign up or sign in to vote.

Solution 1

1. Please format your Source with code tag like this
FILE* fp=fopen("aha.yuv","w");
if(!fp) return NULL;
fwrite(outPic->data[0],nbytes,1,fp); 
fwrite(outBuffer,nbytes,1,fp);
fclose(fp);

2. You should use fopen() in binary mode

3. Can´t see writing you Fileheader or Bitmap-Header, only Data

4. There are several ways to store YUV-Images, see:

YUVIT - open source convertor to YUV colorspace
https://github.com/stunpix/yuvit

yuv : Planar format
yuyv : Packed format
uyvy : Packed format
  Permalink  
Comments
liaoyuandeyehuo 21-Apr-13 23:24pm
   
The YUVIT is too big for me now.I have no much time to read it.
I try to use fopen() in binary mode and use anther way to convert it,and it's ok now.
Thanks for your help.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web01 | 2.8.160208.1 | Last Updated 21 Apr 2013
Copyright © CodeProject, 1999-2016
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100