从Java服务器到Android客户端实时流视频的最佳方法?

杰瑞姆

几天以来,我一直在寻找将PC屏幕从Java服务器实时流传输到Android客户端最佳方法,但是我找不到其他方法来传输TCP套接字。我想从PC流到Android客户端。

现在,我只是通过TCP套接字发送图像(帧)它工作正常,但有以下缺点:

  • 带宽消耗大(通过多个客户端进行单播)
  • 服务器和客户端之间的服务器秒数转换
  • 低帧率

我尝试使用UDP套接字,但是如何处理64Ko的最大大小的数据包?最好的解决方案是多播的UDP但我在Android上阅读了有关设备的一些问题。

预先感谢您的回答!

杰瑞姆

我终于成功通过Java服务器上的RTP传输了PC的屏幕

代码:

public static void main(String[] args) throws Exception {
    boolean found = new NativeDiscovery().discover();
    System.out.println(found);
    System.out.println(LibVlc.INSTANCE.libvlc_get_version()); 

    String media = "screen://";
    String options = formatRtpStream("230.0.0.1", 5555);

    System.out.println("Streaming '" + media + "' to '" + options + "'");

    MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory(args);
    EmbeddedMediaPlayer mediaPlayer = mediaPlayerFactory.newEmbeddedMediaPlayer();

    Canvas canvas = new Canvas();
    canvas.setBackground(Color.black);
    CanvasVideoSurface videoSurface = mediaPlayerFactory.newVideoSurface(canvas);
    mediaPlayer.setVideoSurface(videoSurface);

    // Creating a JFrame to display stream (duplicate)
    JFrame f = new JFrame("vlcj duplicate output test");
    f.add(canvas);
    f.setSize(800, 600);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);

    mediaPlayer.playMedia(media,
        options,
        ":no-sout-rtp-sap",
        ":no-sout-standard-sap",
        ":sout-all",
        ":sout-keep"
    );

    // Don't exit
    Thread.currentThread().join();
}

private static String formatRtpStream(String serverAddress, int serverPort) {
    StringBuilder sb = new StringBuilder(60);
    sb.append(":sout=");
    // Transcode with codec (mp4v here), 30 FPS, not resized (scale 1), audio disabled (only video).
    sb.append("#transcode{vcodec=mp4v,fps=30,scale=1,noaudio}");
    // Creating RTP address
    sb.append(":rtp{dst=");
    sb.append(serverAddress);
    sb.append(",port=");
    sb.append(serverPort);
    // Encapsulation method used for the resulting stream, this option has to be set.
    sb.append(",mux=ts}");
    return sb.toString();
} 

在窗口中显示结果流:

您可以替换为:

sb.append(":rtp{dst=");
sb.append(",mux=ts}");

这样:

sb.append(":duplicate{dst=display,dst=rtp{dst=");
sb.append(",mux=ts}}");

这样,您将能够看到结果流。


一些有趣的链接:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

处理SSL客户端到服务器到客户端的最佳方法(中继?)

来自分类Dev

从Android设备到服务器的实时视频流

来自分类Dev

从Android设备到服务器的实时视频流

来自分类Dev

Java中的客户端/服务器程序-流

来自分类Dev

流星:将Mongo Selector从客户端传递到服务器的最佳方法

来自分类Dev

Java中客户端服务器通信的最佳方法

来自分类Dev

服务器到客户端的通信方法

来自分类Dev

服务器到客户端的通信方法

来自分类Dev

从客户端到服务器(流星)调用方法

来自分类Dev

Java中从客户端到服务器的通信

来自分类Dev

JAVA客户端并发修改异常通过服务器到客户端

来自分类Dev

服务器和客户端之间的实时通信

来自分类Dev

生成pdf客户端或服务器端的最佳方法

来自分类Dev

从服务器到客户端的Web音频流文件

来自分类Dev

Vert.x Java 实时服务器客户端通信

来自分类Dev

Android(Java)中MediaRecorder的LocalSocket(Unix域)客户端-服务器数据流问题

来自分类Dev

客户端数据到服务器端

来自分类Dev

使用弹性搜索进行搜索的最佳方法是什么(通过服务器与直接 Java 客户端)?

来自分类Dev

如何将实时视频帧从客户端流传输到flask服务器,再流回客户端?

来自分类Dev

从移动设备(iOS和Android)到服务器的实时流视频

来自分类Dev

Android客户端使用线程与服务器通信的最佳实践

来自分类Dev

Java客户端-服务器流初始化

来自分类Dev

客户端将文件上传到远程服务器的最佳方法?

来自分类Dev

TCP / IP客户端:从服务器读取多个输入流的最佳方法

来自分类Dev

C#中服务器/客户端通信的最佳冗余方法

来自分类Dev

在Perl中启动客户端服务器编程的最佳方法?

来自分类Dev

最佳服务器API和客户端Javascript交互方法?

来自分类Dev

测试客户端和服务器之间连接质量的最佳方法

来自分类Dev

从Meteor服务器方法将数组返回到客户端的最佳实践是什么?

Related 相关文章

  1. 1

    处理SSL客户端到服务器到客户端的最佳方法(中继?)

  2. 2

    从Android设备到服务器的实时视频流

  3. 3

    从Android设备到服务器的实时视频流

  4. 4

    Java中的客户端/服务器程序-流

  5. 5

    流星:将Mongo Selector从客户端传递到服务器的最佳方法

  6. 6

    Java中客户端服务器通信的最佳方法

  7. 7

    服务器到客户端的通信方法

  8. 8

    服务器到客户端的通信方法

  9. 9

    从客户端到服务器(流星)调用方法

  10. 10

    Java中从客户端到服务器的通信

  11. 11

    JAVA客户端并发修改异常通过服务器到客户端

  12. 12

    服务器和客户端之间的实时通信

  13. 13

    生成pdf客户端或服务器端的最佳方法

  14. 14

    从服务器到客户端的Web音频流文件

  15. 15

    Vert.x Java 实时服务器客户端通信

  16. 16

    Android(Java)中MediaRecorder的LocalSocket(Unix域)客户端-服务器数据流问题

  17. 17

    客户端数据到服务器端

  18. 18

    使用弹性搜索进行搜索的最佳方法是什么(通过服务器与直接 Java 客户端)?

  19. 19

    如何将实时视频帧从客户端流传输到flask服务器,再流回客户端?

  20. 20

    从移动设备(iOS和Android)到服务器的实时流视频

  21. 21

    Android客户端使用线程与服务器通信的最佳实践

  22. 22

    Java客户端-服务器流初始化

  23. 23

    客户端将文件上传到远程服务器的最佳方法?

  24. 24

    TCP / IP客户端:从服务器读取多个输入流的最佳方法

  25. 25

    C#中服务器/客户端通信的最佳冗余方法

  26. 26

    在Perl中启动客户端服务器编程的最佳方法?

  27. 27

    最佳服务器API和客户端Javascript交互方法?

  28. 28

    测试客户端和服务器之间连接质量的最佳方法

  29. 29

    从Meteor服务器方法将数组返回到客户端的最佳实践是什么?

热门标签

归档