A video player for Plan 9

3c7e3e2 YUV: rename *1 -> *

~ft pushed to ~ft/treason git

6 days ago

66d57ce YUV: reformat

~ft pushed to ~ft/treason git

6 days ago


A video player for 9front.


Video one

Video two

What can it play? MP4 and MKV/WEBM files, which are multimedia containers. Video formats supported are AV1, H.264 (baseline only), VP8 and VP9. Only 8-bit per component YUV 4:2:0 is supported atm. AAC, OPUS and Vorbis audio is supported.

It's only supposed to build and run on AMD64 for now.

More is coming. Patches are very welcome, too.


Install git9, then:

cd /tmp
git/clone https://git.sr.ht/~ft/dav1d
git/clone https://git.sr.ht/~ft/faad2
git/clone https://git.sr.ht/~ft/h264bsd
git/clone https://git.sr.ht/~ft/libvpx
git/clone https://git.sr.ht/~ft/mcfs
git/clone https://git.sr.ht/~ft/treason
cd libvpx && mk
cd ../dav1d/src && mk
cd ../../h264bsd/src && mk install
cd ../../treason && mk install
cd ../mcfs && mk install
cd ../faad2/libfaad && mk install && cd ../frontend && mk install

For opus decoding see adding opus support to 9front (scroll down on the post).


See how to Youtube on ⑨.


This is a half-baked early stage project, there are many things missing, in need of improvement, and some (probably) are outright wrong.

You need a fast computer to play AV1. H.264 doesn't require as much. VP8/VP9 might be a good alternative.

If you see random crashes, try running with NPROC=1. Multithreaded decoding "works on my machine", but who knows.


Sigrid on 9gridchan or freenode.