<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror" -->

---
title: A roadmap for VirtIO Video on Chrome OS, part 1 | daily.dev
description: Collabora is working to bring hardware-accelerated video encoding and decoding to Android applications running on Chrome OS via ARCVM. The post explains the...
canonical: https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: A roadmap for VirtIO Video on Chrome OS, part 1 | daily.dev
og:description: Collabora is working to bring hardware-accelerated video encoding and decoding to Android applications running on Chrome OS via ARCVM. The post explains the...
og:url: https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror
og:image: https://api.daily.dev/og/posts/si6WNhRoR.png
og:image:alt: A roadmap for VirtIO Video on Chrome OS, part 1
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# A roadmap for VirtIO Video on Chrome OS, part 1

**[Collabora Blog](https://daily.dev/sources/collabora)** · 7 min read · 0 upvotes · 0 comments

## Summary

Collabora is working to bring hardware-accelerated video encoding and decoding to Android applications running on Chrome OS via ARCVM. The post explains the VirtIO Video protocol, which virtualizes hardware codec accelerators using a paravirtualized approach based on the V4L2 Memory-to-Memory Stateful API. CrosVM, a Rust-based virtual machine manager, uses VirtIO Video to share Chromebook codec hardware with Android guests. The existing backend (libvda) created an undesirable dependency on Chrome, and alternatives like GStreamer and FFMPEG were rejected due to security concerns around C code in a Rust-focused project. This led to the creation of cros-codecs and cros-libva as open-source Rust libraries for hardware-accelerated video.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://www.collabora.com/news-and-blog/blog/2023/06/20/a-roadmap-for-virtio-video-on-chromeos-part1>

## Questions this post answers

### What is VirtIO Video and how does it work in Chrome OS ARCVM?

VirtIO Video is a paravirtualized protocol that virtualizes hardware codec accelerators to guest operating systems. In Chrome OS ARCVM, it allows Android applications to use the Chromebook's hardware video encoder/decoder. The kernel driver converts V4L2 Memory-to-Memory Stateful API IOCTLs into VirtIO Video commands sent over two Virtqueues (Command Queue and Event Queue), which CrosVM processes on the host side.

_Engineers building on Chrome OS virtualization stacks track VirtIO Video developments on daily.dev._

### Why was libvda replaced as the CrosVM video backend and what replaced it?

libvda was replaced because it created a hard dependency between CrosVM (a virtual machine manager) and Chrome (a web browser) via Mojo message passing, which became undesirable as CrosVM expanded beyond Chrome OS. GStreamer and FFMPEG were rejected due to being large C projects incompatible with CrosVM's Rust security model. The replacements are cros-codecs and cros-libva, open-source Rust libraries for hardware-accelerated video.

_Developers choosing between video backend options for virtualized Linux environments find relevant comparisons on daily.dev._

## Similar posts on daily.dev

- [AMD Working On A New Backend For Improving ROCm Compute In QEMU/VMs](https://daily.dev/posts/amd-working-on-a-new-backend-for-improving-rocm-compute-in-qemu-vms-px3wwgxqw) · Phoronix · 0 upvotes · 0 comments
- [Scrcpy 5.0 adds hardware decoding for Android mirroring](https://daily.dev/posts/scrcpy-5-0-adds-hardware-decoding-for-android-mirroring-c2erzqjzu) · omg\! ubuntu\! · 0 upvotes · 0 comments
- [Kernel 7.2: RK3588 media, smarter GPU memory, and Rust foundations](https://daily.dev/posts/kernel-7-2-rk3588-media-smarter-gpu-memory-and-rust-foundations-vrpih8voj) · Collabora Blog · 0 upvotes · 0 comments
- [Why Chrome OS Is the Operating System the AI Era Was Built For](https://daily.dev/posts/why-chrome-os-is-the-operating-system-the-ai-era-was-built-for-pgqejp2wy) · freeCodeCamp · 1 upvotes · 0 comments
- [Android virtualization](https://daily.dev/posts/android-virtualization-prpwdg7qo) · Quartex Pascal · 18 upvotes · 1 comments

---

Tags: [#chromeos](https://daily.dev/tags/chromeos)

[View this post on daily.dev](https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"A roadmap for VirtIO Video on Chrome OS, part 1","url":"https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror"},"datePublished":"2026-08-11T08:55:27.759Z","dateModified":"2026-08-11T09:26:31.462Z","description":"Collabora is working to bring hardware-accelerated video encoding and decoding to Android applications running on Chrome OS via ARCVM. The post explains the...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2c907a5dd6e52879fc65d6e85f2310ae?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/2c907a5dd6e52879fc65d6e85f2310ae?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Collabora Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Collabora Blog","logo":"https://media.daily.dev/image/upload/s--ZGZ0FjqS--/f_auto,q_auto/v1786438306/logos/collabora?_a=BAMAMicg0","url":"https://daily.dev/sources/collabora"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"chromeos","timeRequired":"PT7M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Collabora Blog","item":"https://daily.dev/sources/collabora"},{"@type":"ListItem","position":3,"name":"A roadmap for VirtIO Video on Chrome OS, part 1"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/a-roadmap-for-virtio-video-on-chrome-os-part-1-si6wnhror#faq","mainEntity":[{"@type":"Question","name":"What is VirtIO Video and how does it work in Chrome OS ARCVM?","acceptedAnswer":{"@type":"Answer","text":"VirtIO Video is a paravirtualized protocol that virtualizes hardware codec accelerators to guest operating systems. In Chrome OS ARCVM, it allows Android applications to use the Chromebook's hardware video encoder/decoder. The kernel driver converts V4L2 Memory-to-Memory Stateful API IOCTLs into VirtIO Video commands sent over two Virtqueues (Command Queue and Event Queue), which CrosVM processes on the host side. Engineers building on Chrome OS virtualization stacks track VirtIO Video developments on daily.dev."}},{"@type":"Question","name":"Why was libvda replaced as the CrosVM video backend and what replaced it?","acceptedAnswer":{"@type":"Answer","text":"libvda was replaced because it created a hard dependency between CrosVM (a virtual machine manager) and Chrome (a web browser) via Mojo message passing, which became undesirable as CrosVM expanded beyond Chrome OS. GStreamer and FFMPEG were rejected due to being large C projects incompatible with CrosVM's Rust security model. The replacements are cros-codecs and cros-libva, open-source Rust libraries for hardware-accelerated video. Developers choosing between video backend options for virtualized Linux environments find relevant comparisons on daily.dev."}}]}
```

