Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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
Java VLCj转码和文件保存_Java_Vlc_Libvlc_Vlcj - Fatal编程技术网

Java VLCj转码和文件保存

Java VLCj转码和文件保存,java,vlc,libvlc,vlcj,Java,Vlc,Libvlc,Vlcj,我想开发一个网络摄像头记录的java应用程序应在Windows、Linux和Mac上无缝工作。我正在使用caprica软件提供的VLCj CaptureTest.java类。我有一些疑问和问题: 捕获设备MRL适用于Windows(dshow://)和Linux(v4l2:///dev/video0),但不适用于Mac Linux仅提供音频媒体选项,即:输入从设备=alsa://hw:0,0 那Windows和Mac呢 我在转码方面也有一些非常棘手的问题。当我运行该类时,不会显示视频,会显示一个

我想开发一个网络摄像头记录的java应用程序应在Windows、Linux和Mac上无缝工作。我正在使用caprica软件提供的VLCj CaptureTest.java类。我有一些疑问和问题:

  • 捕获设备MRL适用于Windows(dshow://)和Linux(v4l2:///dev/video0),但不适用于Mac

  • Linux仅提供音频媒体选项,即:输入从设备=alsa://hw:0,0 那Windows和Mac呢

  • 我在转码方面也有一些非常棘手的问题。当我运行该类时,不会显示视频,会显示一个黑色窗口,并且仅为以下资源创建音频文件:

    String[] options = {              ":sout=#transcode{vcodec=mp4v,vb=800,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:file{dst=" + fileName + "},dst=display}",
                  ":input-slave=alsa://hw:0,0"
        };
    
    显示和收听视频和音频,但未为以下来源创建文件:

    String[] options = {
                  ":sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:duplicate{dst=display,dst=file{dst=" + fileName + "}'",
                  ":input-slave=alsa://hw:0,0"
      };
    


    我一直在搜索谷歌和Stackoverflow,但我没有得到我需要的。抱歉我对VLCj缺乏了解主要原因是录制视频取决于输入视频,我们应该为这种类型的视频选择正确的编解码器(或转码)。
    可能,您可以尝试首先用VLC录制输入视频,生成字符串选项,然后只选择正确的选项,使视频可见

    这不是特别的
    VLCJ
    问题;这就是如何使用
    libVLC
    引擎和
    sout
    VLC命令。首先使用
    VLC
    媒体播放器测试
    sout
    命令,然后将其作为选项字符串放入
    VLCJ
    中。当然,这里还有一些问题,但你会解决的。现在问题解决了。vcodec=mp4v是主要问题,我改变了vcodec=mp2v,所有的都开始工作了。工作源链是:“:sout=#transcode{vcodec=mp2v,vb=4096,scale=1,acodec=mpga,ab=128,channels=2,samplerate=44100}:duplicate{dst=file{dst=“+fileName+”},dst=display,select=noaudio}…”。。。。。。。。。。。。。。。文件名必须具有.mpg扩展名。
    String[] options = {
                  ":sout '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:standard{access=file,mux=ts,dst=" + fileName + "}'",
    ":input-slave=alsa://hw:0,0"
                };