强制 libvlc/libvlcsharp 为 chromecast 转码视频?

问题描述

我目前正在使用 libvlcsharp 并尝试使用流式传输到 chromecast 的功能。它适用于“大多数”情况,特别是它发送视频并且 chromecast 已经支持视频格式(例如 AVI)的情况。如果我执行诸如 x265 之类的更新操作,则会出现黑屏,因为 chromecast 不支持该格式。

在 VLC Android 应用程序中,它足够聪明地告诉您它将对视频进行转码,因为它以 chromecast 不支持的格式检测到它(这是一个弹出的对话框,表示电池可能已损坏)受到影响,因为它对其进行了转码)。在 libvlcsharp 中,我想总是转码。有没有办法从 libvlcsharp API 或我可以传递给 libvlc 的东西来做到这一点?

解决方法

查看 https://code.videolan.org/videolan/vlc-android/-/blob/master/application/resources/src/main/java/org/videolan/resources/VLCOptions.kt#L222 中的选项

if (hasRenderer) {
            media.addOption(":sout-chromecast-audio-passthrough=" + prefs.getBoolean("casting_passthrough",true))
            media.addOption(":sout-chromecast-conversion-quality=" + prefs.getString("casting_quality","2")!!)
        }

这可能应该默认添加到 libvlcsharp 中。随意贡献 PR。