Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Documentation on input formats and conversion #2

Closed
drlight-code opened this issue Sep 2, 2015 · 3 comments
Closed

Documentation on input formats and conversion #2

drlight-code opened this issue Sep 2, 2015 · 3 comments

Comments

@drlight-code
Copy link
Collaborator

Somewhere in the documentation, the exact input formats understood by veejay need be described. Mention that internal storage is yuv422, and give example command lines for conversion into respective formats using e.g. ffmpeg:

mjpeg:
ffmpeg -i input-file -vcodec mjpeg -pix_fmt yuvj422p -acodec pcm_s16le -ar 44100 -ac 2 output-file.avi

raw yuv422 (no audio):
ffmpeg -i out19.mp4 -vcodec rawvideo -pix_fmt yuv422p -acodec none test.avi

@game-stop
Copy link
Owner

Additional:

There is also some documentation here:
https://github.com/c0ntrol/veejay/blob/master/veejay-current/veejay-server/doc/README.video_formats.txt

outdated, but might still contain usefull information:
https://github.com/c0ntrol/veejay/blob/master/veejay-current/veejay-server/doc/HowtoVideoCodecs.txt
https://github.com/c0ntrol/veejay/blob/master/veejay-current/veejay-server/doc/YCbCr.txt
https://github.com/c0ntrol/veejay/blob/master/veejay-current/veejay-server/doc/README.audio

what should be supported:

  • AVI MJPEG, MJPEG-b, LJPEG, DV ( fourcc "mjpg", "mjpb", "dmb1", "jpeg","mjpa","jfif", "png", "mpng", "sp5x", "jpg1", "dvsd", "dv", "dvp" )
  • AVI HUFFYUV (fourcc "hfyu")
  • veejay-only formats: AVI VJ20, VJ22, MLZO (fourcc "vj20","vj22", "mlzo" )
  • Quicktime MJPEG/DV
  • Pictures (JPG, BMP, PNG, etc)

source:
https://github.com/c0ntrol/veejay/blob/master/veejay-current/veejay-server/libel/avhelper.c
static struct { const char *name; int id; } _supported_codecs[]

@game-stop
Copy link
Owner

Internally veejay processes all video data in digital YUV (YCbCR) and supports two pixel ranges:

  • 0-255 (YUV JPEG/JFIF)
  • 16-235 / 16-240 (YCbCr Rec 601)

The sampling from source is converted to 4:2:2 YUV planar before it is passed to the FX render chain.
During the rendering of the FX chain, the data may be converted to/from RGB (for frei0r plugins) or it may be super sampled to 4:4:4 if an FX or plugin requires this.

This is mostly a relic of the old days now as bandwidth and computing power have substantially increased.

  • Many video codecs decode into some YUV flavour
  • Many capture devices deliver YUV
  • Consumes less memory bandwidth than RGB

@game-stop
Copy link
Owner

Close, continue under #76

d-j-a-y referenced this issue in d-j-a-y/veejay May 25, 2019
d-j-a-y referenced this issue in d-j-a-y/veejay May 25, 2019
d-j-a-y referenced this issue in d-j-a-y/veejay May 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants