Java 视频流项目

Java video streaming project

我必须做一个视频流java程序作为大学的一个项目,但是我不知道如何开始!

我必须同时做,主服务器端和子服务器端,客户端将是 VLC。

所以我在这方面需要帮助:

注意:我更喜欢用mp4视频,但我可以随便用。

谢谢

您需要决定是构建真正的直播流(通常是 Apple HLS 或 MPEG DASH),还是只是 pseudo-live 流。某些格式,如 MP4,在正确格式化后可以流式传输(查看如何操作 here)。

In the main server I must split the videos to say 10KB parts how to do that correctly?

听起来您想将 mp4 转换为 mpeg-ts。看看https://github.com/taktik/mpegts-streamer. Other option is to run ffmpeg

How to stream a video from a sub-server to the client properly?

Multi-source 同步对于直播来说是一个 non-trivial 问题。取决于您的实施:

  1. Pseudo-live 使用 MP4 流式传输:确保您的流式传输 API 支持搜索和重新启动。当客户端重新连接到另一个端点时,它可能会发送 HTTP headers 以指示从哪里继续(不确定 VLC 是否支持)

  2. 真正的实时流:跟踪提供给客户端的块。主题或 elasticache 听起来很合理。当客户端第一次连接到 sub-server 时,分析订阅或查询 elasticache 以确定最佳块。

您可以查看 Ant Media Server 开源项目。

完整示例 stream-m

https://github.com/vbence/stream-m/blob/master/README.md

包含捕获和传输示例