• Home
  • What's Tribler
  • Download
  • FAQ
  • Forum
Tribler

Wiki Navigation


Processing EBU's YUV files with FFmpeg

To process YUV files (i.e. raw video), you need to know:

* size (WxH)

* framerate

* YUV format (there are many, see http://www.fourcc.org)

We stumbled upon YUV8 and YUV10 files as provided by the EBU (http://www.ebu.ch/en/technical/hdtv/test_sequences.php). Every frame is a seperate file; fortunately, YUV files can be concatenated.

* YUV8 files have a byte format of "YUV422 = Cb0 Y0 Cr0 Y1 Cb1 Y2 Cr1 Y3" ("U Y V Y U Y V Y") and can be processed using

ffmpeg -s 1920x1080 -r 50 -f rawvideo -pix_fmt uyvy422 -i input.yuv output.mp4

* YUV10 files cannot be processed by FFmpeg directly, because FFmpeg does not support 10 bits/pixel. One way to get around this is to convert it to YUV8. The following program takes YUV10 on stdin and provides YUV8 on stdout:

#include <stdio.h>
void main() {
  int a,b,c,d;
  unsigned int k,l,m;
  for(;;) {
     // read 32 bits
     a = getchar();
     if(a<0) return;
     b = getchar();
     c = getchar();
     d = getchar();

     // first 30 bits contain 3 x 10 bit values
     k = (a << 2) | (b >> 6);
     l = ((b & 0x3F) << 4) | (c >> 4);
     m = ((c & 0x0F) << 6) | (d >> 2);

     // crude downsample
     putchar(k >> 2);
     putchar(l >> 2);
     putchar(m >> 2);
  }
}

Latest news

28 October 2008

The long-awaited Tribler 4.5 is here''

29 April 2008

Tribler Team organized a successful course on Advanced P2P Technology
Read More

17 February 2008

19 Million Euro for P2P research
Read More

Please contact us if you have found a news item that's not listed here.


  • News
  • Developers
  • Business
  • Research
  • Jobs
  • About Us
  • Press
  • Contact
Login