[vlc] HDMI to mp2v & h.264 HD video encoding bounty
Anton Kapela
tkapela at gmail.com
Wed Dec 24 04:40:30 CET 2008
Lists,
Are you a hungry college or grad student? Know win32? Like VLC
development? Want a quick $1.5k to fix some lingering issues?
I'm writing to both devel and user lists to announce a bounty of $1500
(USD) for achieving a working, stable (as in >30 day runtime)
implementation of specific features that, to the best of my abilities,
testing, and knowledge, are unable to work at present. Pieces and
parts of VLC that support my needs appear "mostly there," but for one
reason or another not quite working all at the same time (or on the
same platform).
Bounty Goal: permit VLC to use HDYC-chroma, HD-resolution video [1]
and PCM audio (from the HDMI embedded source), passing said video to
MPEG2 *and* h.264 encoders (cpu permitting) and audio to mp2a, mp4a,
or mp3 encoders, resulting in compressed video and audio to be
transported via the existing mp2ts muxer towards a IPv4 or IPv6
multicast group address.
Platform ultimately doesn't matter - win32+directshow is fine, or *nix
and v4l support for the HDMI input card of interest would both qualify
for the bounty. This presumes you could somehow get or write *nix
support for the HDMI input of interest (see [1]).
For testing and dev work, we have a dell PE2950 with 8-way cpus @ 2.3
ghz, accessible via an out of band IP-KVM system (with win32 and x86
linux clients) and in-band with windows RDP, placed on public IP
addresses. In short, the system will be 'yours' for the duration of
your attempt/work on the bounty. We have various HDMI sources (cannon
HV30, via [1]) and ip multicast HDV sources to use as sample inputs.
So, on with it. The present state of VLC (i.e. obvious stuff you'll
have to wade through and fix):
-Threading for mpeg (1, 2, 4 part 2, part 10/h.264) encoders on win32
appears not supported, or broken. You'll likely need to get this
patched/fixed to support the goal of working transcoding, as no single
core instance (that I'm aware of...) will scale to support HD
resolutions at a decent frame rate. [2]
-Handling of HDYC from input device to transcoder appears to be
lacking within directshow. It's unclear to us in 0.9 or 1.0-dailies if
this works. I've been in contact with Ed Gomez (who originally hacked
in HDYC support), but he nor I have been able to determine where
trouble exists down the line with transcoders or if the particular
hardware we're using is causing some sort of trouble.
-Handling of odd-sized frames and initializing mpeg profiles as needed
seems to be somewhat troublesome today throughout VLC modules
(encoders, aspect ratio specifications, filters, etc). For example,
HDV sources are 1440x1080, non-square pixels. To earn the bounty,
1920x1080 and 1440x1080 (or other wacky sized) HDV inputs on
HDMI+directshow need to work 'end to end.' This means, it must product
correct, stable, watchable mpeg2 and h.264 streams out of the
packetizer/ts/pmt+pes generation modules.
Payment will be via paypal. I'm not averse to cash/check, but only
within in the US.
If you'd like to negotiate some part of the bounty total upfront as
earnest money, please email me directly to discus your terms.
Any takers? <g>
Oh yea, one last part: your patches need to be made available to the
VLC project and pass their review to make it into the source repo. A
one-off version compiled for me doesn't help anyone else.
Best,
-Tk
----
[1] "HD Resolution Video" as used by me means 1920x1080 video, at a
60i or 30 PsF (progressive segmented frame) cadence using a 4:2:2 or
4:2:0 chroma format as provided to the host OS by the BlackMagic
Designs "Intensity" HDMI capture/input card
(http://www.blackmagic-design.com/products/intensity/).
[2] I've tested *nix versions of vlc and libavcodec to find that h.264
can indeed be encoded on quad-core and modest dual quad-core systems
quite nicely. We've found that 0.8.x versions in fact did support
threading of mpeg2 encoding and are able to achieve desired results
from 4 and 8 core systems using that version (taking in 25mbit
1440x1088i60 HDV, decoding, deinterlacing, spitting out 3 to 5 mbit
mpeg2 hdv, turning on hq=rd, trellis, and pre-me even!). In short, I
know the cpu exists do to this at HD res to a high degree of
certainty).
More information about the vlc
mailing list