gpt4 book ai didi

javascript - 无法从 JS 传递 VLC Mozilla 插件的选项

转载 作者:行者123 更新时间:2023-11-29 19:23:20 33 4
gpt4 key购买 nike

我正在尝试为 VLC Mozilla 插件的嵌入式播放器传递一些选项,但没有任何反应。

<embed
type="application/x-vlc-plugin"
id="vlc"
width="400" height="300"
></embed>

<script type="text/javascript">
var target = "http://example.com/videostream/";
var options = new Array("--video-filter invert");

vlc = document.getElementById("vlc");
var id = vlc.playlist.add(target,"Not Inverted Here",options);
vlc.playlist.playItem(id);
</script>

我用命令行 VLC 尝试了相同的 URL 和 args,它有效。

vlc http://example.com/videostream/ --video-filter invert

(无论如何,我正在尝试使用独立 VLC 播放器的各种命令行选项,例如旋转、棕褐色、灰度、模糊,但我失败了。也许我必须为 VLC 启用或选择一些东西。)

真正的问题是我想通过将 --demux=h264 传递给嵌入式播放器来修复视频流格式错误(它适用于从命令行启动的桌面 VLC 播放器),但首先我想将任何选项传递给嵌入式播放器,只是为了看看它是否有效。

我正在使用 Ubuntu 15.04、Firefox 40.0 和 VLC Web 插件 2.2.0 (Weatherwax)。

最佳答案

为了设置添加到播放列表的选项,您应该使用如下语法:

var options = new Array(":video-filter=invert");

但是这个选项被认为是不安全的,你将得到以下输出(在前台运行 firefox):

[00007f801e0fceb8] core input error: unsafe option "video-filter" has been ignored for security reasons

为了设置此选项,您需要修改 libvlc 或 VLC Web 插件中的代码。


我尝试将播放列表的视频过滤器选项作为可信选项处理,但没有成功。我认为它需要修改 libvlc 本身。

我验证的一种方法是在 npapi-vlc 中将视频过滤器选项设置为受信任。

为此,您可以这样处理:

  1. 修改npapi-vlc.git / npapi / vlcplugin_base.cpp处理新选项 extra

    NPError VlcPluginBase::init(int argc, char* const argn[], char* const argv[])
    {
    ....
    /* parse plugin arguments */
    for( int i = 0; (i < argc) && (ppsz_argc < MAX_PARAMS); i++ )
    {
    ...
    else if( !strcmp( argn[i], "extra" ) )
    {
    ppsz_argv[ppsz_argc++] = argv[i];
    }
    ...
    }

    构建并安装修改后的 npapi-vlc 插件。

  2. 修改 html 以设置此新选项:

    <embed type="application/x-vlc-plugin" id="vlc" width="400" height="300" 
    extra="--video-filter=invert" />

我猜,您可以像这样设置命令行的任何选项,删除安全选项检查。

关于javascript - 无法从 JS 传递 VLC Mozilla 插件的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32096824/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com