Tag: vlc

RTSP服务器java实现问题:(

我正在编写RTSP服务器并遇到一些问题。 我正在使用VLC作为客户端。 服务器从客户端(VLC播放器)接收OPTIONS,DESCRIBE,SETUP和PLAY命令以及对该命令的回答。 通过SETUP命令,客户端发送端口号,我正在使用该端口发送数据。 当我的服务器收到PLAY命令时,它会发送答案并开始传输数据。 我正在使用客户端端口创建两个DatagramSocket实例。 我正在尝试流式传输mp4文件。 我正在使用mp4parse java库来获取音频和video跟踪数据流。 所以,当我点击VLC上的播放时它正在连接并开始等待数据,几秒钟后我在VLC消息中收到了这条消息: live555 warning: no data received in 10s. Switching to TCP 这是我的SDP数据: v=0 o=- 0 0 IN IP4 127.0.0.1 m=video 0 RTP/AVP 96 b=AS:1633 a=rtpmap:96 H264/90000 a=control:trackID=65536 a=fmtp:96 profile-level-id=64001F; packetization-mode=1; sprop-parameter-sets=Z2QAH6zZgFAFuhAAAAMAEAAAAwMg8YMZoA==,aOl7LIs= a=framesize:96 1280-720 m=audio 0 RTP/AVP 97 b=AS:129 a=rtpmap:97 mpeg4-generic/48000/2 a=control:trackID=65537 a=fmtp:97 profile-level-id=41; config=1190; streamType=5; mode=AAC-hbr; […]

VLCJ创建多个video面板

我正在使用vlcj创建多个video面板。 对于每个video窗口,我应该添加代码: factory0 = new MediaPlayerFactory(); mediaPlayer0 = factory0.newEmbeddedMediaPlayer(); mediaPlayer0.setVideoSurface(factory0.newVideoSurface(videoCanvas[0])); mediaPlayer0.setPlaySubItems(true); … 如果我想要8个video面板,那么我将不得不重复这些代码(不是动态的)。 我的问题是:我想将MediaPlayerFactory和MediaPlayerFactory作为数组,以便我可以缩短我的代码,然后只需更改Num_Video就可以动态运行。 我的完整代码如下。 我在mainPanel中创建了4个video面板。 谢谢。 import uk.co.caprica.vlcj.binding.internal.libvlc_media_t; import uk.co.caprica.vlcj.player.MediaPlayer; import uk.co.caprica.vlcj.player.MediaPlayerEventAdapter; import uk.co.caprica.vlcj.player.MediaPlayerFactory; import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; public class MultiThreadedWindow extends JFrame implements ActionListener { private JPanel topPanel = new JPanel(); private JPanel statusPanel = new JPanel(); private JButton playButton = new JButton(“Play”);private JButton btnStop […]

从一系列vlcj播放器播放video

我正在尝试播放作为字符串提供的MRL列表中的video。 问题是,当我尝试运行该类时,一个面板列表显示按钮,只有一个面板工作,但播放按钮不起作用,其他面板。 虽然我故意将停止按钮退出,因为我没有向他们添加动作监听器。 我想要实现的是,当我运行课程时,播放单个video,当我点击另一个video的播放按钮时,当前video停止并移动到下一个video。 我不知道我哪里出错了。 这是我的代码: public class MediaPlayer extends JPanel { //Declares our media player component private EmbeddedMediaPlayerComponent[] mediaplayer; private String[] mediapath = {“”}; private final String vlcpath = “C:\\Program Files (x86)\\VideoLAN\\VLC”; private JPanel video_pnl, control_pnl; private JButton[] play_btn, stop_btn; private int but = 0; public MediaPlayer(String mediapath[]) { this.mediapath = mediapath; play_btn = […]

如何通过java控制VLC

我想在java运行一个名为VLC的程序并在运行时控制它,例如,如果用户单击❚❚或►►按钮,我会执行特定的合适操作。 我通过这段代码运行VLC : try { Runtime rt = Runtime.getRuntime(); Process p = rt.exec(VLCProgramAddFile + ” udp://@:” + listeningPort); OutputStream out = p.getOutputStream(); InputStream in = p.getInputStream(); p.waitFor(); System.out.println(“End of VLC”); } catch (Exception e) { System.out.println(“error in running VLC”); } 我听说过Java绑定,但我不知道它是如何工作的。