java - 流式传输远程.mp4文件,但仅音频

标签 java audio video streaming

我有一个基本的Java程序,它将YouTube视频链接转换为直接的.mp4链接:

YouTubeParser parser = new YouTubeParser();
URL source = parser.extract(parser.info(new URL("https://www.youtube.com/watch?v=afhdlaksfh")), new AtomicBoolean(false), null).get(0).getSource();

现在我想播放source。我不想添加GUI,因此不需要视频部分。

我已经尝试过javax.media.Player之类的各种方法,但它们仅适用于音频文件。

最佳答案

我想您是说您获得了YouTube mp4文件的网址,并且您想要流式传输该内容,但只播放音频,而不是在服务器端提取音频轨道并仅传输音频。

您没有提到要使用的平台,但是对于Web或移动设备,最简单的方法可能是简单地使用常规视频播放器进行播放,而只是隐藏视频显示。

这很可能是低效的,具体取决于媒体播放器的智能程度-即,如果它足够聪明,以至于在知道视频实际上不可见时也不必费心解码和准备显示视频,那就可以了,但是我认为这是可以的对于大多数媒体播放器来说,这不是一个可能的功能。

如果只是偶尔使用,那么效率可能对您并不重要。

如果确实可以选择首先在某个地方处理服务器上的mp4,则可以使用ffmpeg从mp4中提取mp3音频文件-例如,请参见以下答案:https://stackoverflow.com/a/36324719/334402

值得注意的是,YouTube通常希望使用自己的播放器来播放视频,因此任何提取“原始” mp4网址的方法都可能会在没有通知的情况下停止工作。在此处查看“您不能”和“您可以”答案,以了解更多背景信息:Is there a Youtube API that gives only audio?

(如果问题被删除或链接的'TL; DR'版本破译,则是:这样做违反YouTube的条款,但仍然有解决方案的示例)。

关于java - 流式传输远程.mp4文件,但仅音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475424/

相关文章:

java - Websphere JAVA_DUMP_OPTS 条件捕获的所有事件有哪些?

java - JDBC 连接太多 - 连接已正确关闭

android - 使用 FFMPEG 在 Android 中合并两个音频文件

java - 以 Java dos 风格播放声音频率

internet-explorer - Youtube视频无法在Internet Explorer 11中显示

PHP 视频操作?

java - Maven和webstart项目如何使用jetty进行测试?

java - Hibernate和Spring3事务管理注解-配置问题: Hibernate-Exception: No Hibernate Session bound to thread

iphone - iPhone:检测特定频率(振幅)的复制声音

javascript - 移动设备上的奇怪行为 html5 视频