I'm batch-transcoding a library of clips into downscaled editing proxies. If I kick off two hardware transcodes at once, the encoder reliably falls over, so right now I run
everything serially: each clip gets fully decoded, encoded, and muxed before the next one starts. It works, but it's slow, and the decode and encode hardware are mostly idle
waiting on each other.
A few things I can't pin down from the docs:
Is there an actual ceiling on how many VTCompressionSession / VTDecompressionSession instances can be live at once, and does it depend on the device, the codec, or the resolution?
Can I query that ceiling at runtime? I'd rather size my concurrency up front than find it by crashing.
Decode and encode are separate hardware blocks, so can I safely run a decode session for one clip while the previous clip is still encoding, or does VideoToolbox serialize them anyway?
When I do go over the limit, what should I be checking so I can back off cleanly? Right now I just get a crash instead of an error I can catch.
Anything that gets me off the fully-serial pipeline would help. Thank you
Topic:
Media Technologies
SubTopic:
Video
3
0
168