Content
Build VP9/Vp8 Source for Windows
The official VP9/VP8 source: https://chromium.googlesource.com/webm/libvpx
git clone https://chromium.googlesource.com/webm/libvpx vpx
Build VP9/VP8 Source for Windows
Open (or run) MSYS2
Note: if you have not MSYS2 installed on your machine, you need to install it from https://www.msys2.org .
Check that MSYS2 contains gcc, make, nasm and diffutils, merely type ‘gcc‘ and if ‘command not found’ appears then ‘gcc‘ is not installed.
To install the above tools type the following commands:
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S make
pacman -S nasm
pacman -S diffutils
In the MSYS2 window enter to the folder vpx (e.g. ‘cd /c/Tools/vpx‘) and type the following command to create make-files:
./configure –disable-unit-tests –enable-vp8 –as=nasm –enable-vp9 –target=x86_64-win64-gcc
Note: you can create make-files to build Visual Studio solution: ./configure –disable-unit-tests –enable-vp8 –as=nasm –enable-vp9 –target=x86_64-win64-vs17
but the build of the code is tricky (you need install pthread and manually retarget Toolsets, if your VS is 2019 or higher).
In the MSYS2 window run ‘make‘ to compile the sources vpxenc.exe and vpxdec.exe are created in the folder ‘vpx’.
Encoding
Example [encode 100 frames in VP9, VBR Rate Control, target bitrate 10Mbps, single pass, fast mode]:
vpxenc.exe Fifa1080p.yuv -w 1920 -h 1080 --limit=100 --codec=vp9 --cpu-used=5 --passes=1 --kf-max-dist=30 --end-usage=vbr --target-bitrate=10000 -o test.webm
--cpu-used=5 fast mode
--passes=1 single pass Rate Control
--end-usage=vbr VBR Rate Control
--target-bitrate=10000 target bitrate in kbps (only in units of kbps)
--codec=vp9 VP9 standard
--kf-max-dist=30
GOP length in frames
-o test.webm
output file in the format WebM
To encode VP8 use ‘--codec=vp8'
Anyway, you can get full hep by typing ‘vpenc.exe --help
‘ .
Decoding
To create output yuv in yuv420p format use --rawvideo
vpxdec --rawvideo -o test1080p.yuv test.webm
Here test.webm is input file and ‘-o test1080p.yuv
‘ is the output yuv-file, the resolution is signaled within WebM header (so, no sense to type the resolution).
With ‘ffplay’ you can run the output yuv-file (by default ffplay set pixel format to yuv420p):
ffplay -f rawvideo -video_size 1920×1080 test1080p.yuv
23+ years’ programming and theoretical experience in the computer science fields such as video compression, media streaming and artificial intelligence (co-author of several papers and patents).
the author is looking for new job, my resume
Dear videonerd.website owner, You always provide great resources and references.
Dear videonerd.website owner, Your posts are always insightful and valuable.
To the videonerd.website administrator, Thanks for the well-organized and comprehensive post!
Thank you for the sensible critique. Me and my neighbor were just preparing to do a little research about this. We got a grab a book from our area library but I think I learned more clear from this post. I’m very glad to see such wonderful info being shared freely out there.
Dear videonerd.website owner, Thanks for the well-organized and comprehensive post!
I like what you guys are up too. Such clever work and reporting! Carry on the superb works guys I?ve incorporated you guys to my blogroll. I think it will improve the value of my website 🙂
you have an incredible weblog here! would you like to make some invite posts on my blog?
This is very interesting, You are a very skilled blogger. I have joined your feed and look forward to seeking more of your excellent post. Also, I have shared your web site in my social networks!
I am now not certain the place you are getting your information, but great topic. I needs to spend some time learning much more or working out more. Thank you for fantastic info I was in search of this info for my mission.
After examine a few of the blog posts in your web site now, and I actually like your method of blogging. I bookmarked it to my bookmark website list and might be checking again soon. Pls take a look at my site as properly and let me know what you think.