Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法从JS传递VLC Mozilla插件的选项_Javascript_Firefox_Vlc - Fatal编程技术网

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

Javascript 无法从JS传递VLC Mozilla插件的选项,javascript,firefox,vlc,Javascript,Firefox,Vlc,我试图为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 optio

我试图为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播放器的命令行选项,例如旋转、深褐色、灰度、模糊,但我失败了。也许我必须为VLC启用或选择一些东西

真正的问题是,我想通过将-demux=h264传递给嵌入式播放器来修复视频流格式错误。它与从命令行启动的桌面VLC播放器一起工作,但首先我想将任何选项传递给嵌入式播放器,以确保它工作

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

我正在使用Ubuntu 15.04、Firefox 40.0和VLC Web Plugin 2.2.0 Weatherwax。

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

var options = new Array(":video-filter=invert");
但是,此选项被认为是不安全的,您将在前台运行firefox时获得以下输出:

[00007f801e0fceb8]核心输入错误:不安全选项视频过滤器已损坏 由于安全原因被忽略

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

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

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

为此,您可以这样处理:

修改处理新选项

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

修改html以设置此新选项:

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

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

如果您想强制选择解复用器,这比设置过滤器更容易

在vlc的帮助下:

流MRL语法: [[access][/demux]://]URL[[title][:chapter][-[title][:chapter]]][:option=value…]

然后,您应该能够使用以下方法设置h264解复用器:

<script type="text/javascript">
    var target = "http/h264://example.com/videostream/";    
    vlc = document.getElementById("vlc");       
    var id = vlc.playlist.add(target);
    vlc.playlist.playItem(id);              
</script>

这个URL协议前缀看起来非常愚蠢,但可以工作。
<script type="text/javascript">
    var target = "http/h264://example.com/videostream/";    
    vlc = document.getElementById("vlc");       
    var id = vlc.playlist.add(target);
    vlc.playlist.playItem(id);              
</script>