[vlc-devel] [RFC] Experiemental Chromecast support

magsoft at videolan.org magsoft at videolan.org
Wed Aug 20 10:38:16 CEST 2014

From: Adrien Maglo <magsoft at videolan.org>

Hi all,

Here is a set of patches that add an experimental Chromecast support to VLC.
Basically, it adds two new dependencies (protobuf and jsoncpp) and a new stream output module. This module uses the avformat mp4 muxer (can be changed to webm) and the http access output to stream to the Chromecast.
You must specify to the module your local ip and the ip of the Chromecast device. Transcoding is needed for most of the streams, which is of course really tricky to perform in real time and in software for HD streams...

An usage example can be:
./vlc -I dummy -vvv ~/Vidéos/big_buck_bunny_1080p_h264.mov --sout="#transcode{venc=x264{profile=baseline,keyint=52},vcodec=h264,scale=0.5,vb=8000,acodec=vorb}:chromecast{sender-ip=,receiver-ip=}" --sout-avformat-options="movflags=frag_keyframe+empty_moov"

There is a compilation issue for win32 that prevents the module to be compiled:
undefined reference to `vlc_poll(pollfd*, unsigned int, int)
I haven't had any success trying to fix that. Solutions are very much welcomed.

Thank you in advance for your comments,


Adrien Maglo (3):
  contrib: add jsoncpp
  chromecast: add protobuf generated files
  chromecast: add an experimental sout module that connects to a
    ChromeCast device and streams using the HTTP access output

Felix Paul Kühne (2):
  tls: allow existing external API to be accessed by other VLC modules
  contrib: add protobuf

 configure.ac                                     |    2 +-
 contrib/src/jsoncpp/rules.mak                    |   28 +
 contrib/src/protobuf/SHA512SUMS                  |    1 +
 contrib/src/protobuf/rules.mak                   |   26 +
 contrib/src/protobuf/win32.patch                 |   28 +
 include/vlc_tls.h                                |    4 +-
 modules/stream_out/Modules.am                    |    6 +
 modules/stream_out/chromecast/cast.cpp           |  931 +++++++++++++++
 modules/stream_out/chromecast/cast_channel.pb.cc | 1306 +++++++++++++++++++++
 modules/stream_out/chromecast/cast_channel.pb.h  | 1357 ++++++++++++++++++++++
 modules/stream_out/chromecast/cast_channel.proto |   79 ++
 src/libvlccore.sym                               |    2 +
 12 files changed, 3767 insertions(+), 3 deletions(-)
 create mode 100644 contrib/src/jsoncpp/rules.mak
 create mode 100644 contrib/src/protobuf/SHA512SUMS
 create mode 100644 contrib/src/protobuf/rules.mak
 create mode 100644 contrib/src/protobuf/win32.patch
 create mode 100644 modules/stream_out/chromecast/cast.cpp
 create mode 100644 modules/stream_out/chromecast/cast_channel.pb.cc
 create mode 100644 modules/stream_out/chromecast/cast_channel.pb.h
 create mode 100644 modules/stream_out/chromecast/cast_channel.proto


More information about the vlc-devel mailing list