使用 ExoPlayer 将 YouTube 直播视频 (DASH) 流式传输到 Android 应用程序

2024-01-07

我正在制作一个可以将实时 YouTube 视频流式传输到我的应用程序的应用程序。我想使用 ExoPlayer。我浏览了 ExoPlayer 的演示应用程序,他们在 DASH 流中使用的 URL 是这样的:

"uri":"http://www.youtube.com/api/manifest/dash/id/bf5bb2419360daf1/source/youtube?as=fmp4_audio_clear,fmp4_sd_hd_clear&sparams=ip,ipbits,expire,source,id,as&ip=0.0.0.0&ipbits=0&expire=19000000000&signature=51AF5F39AB0CEC3E5497CD9C900EBFEAECCCB5C7.8506521BFC350652163895D4C26DEE124209AA9E&key=ik0"

这是有效的。

我不知道如何获得这样的网址,最后我here https://github.com/google/ExoPlayer/issues/48。这是否意味着即使视频是我自己的,我也无法从 YouTube 进行流式传输? (尤其是直播视频)如果可以的话,我怎样才能获得我的视频的这样的 URL?


我了解到 DASH URL 实际上是 Google 内部的东西,您可能需要使用解码器才能获取您的 URL。

为此,您可能需要尝试 Karim Abdell Salam 在此提供的以下解决方案SO post https://stackoverflow.com/questions/29607104/how-to-play-youtube-video-in-exoplayer-in-android:

  1. 首先你需要调用这个url:http://www.youtube.com/get_video_info?&video_id=v1uyQZNg2vE并且不要忘记将最后一个 id 更改为目标 id。
  2. 现在您会收到通知,需要下载一个名为get_video_info没有扩展名。
  3. 尝试使用记事本等打开此文件。
  4. 现在你有了正确的数据,但你无法读取它,因为它是经过编码的。你需要 HTML 解码器来读取此数据。使用这个:http://meyerweb.com/eric/tools/dencoder/。只需粘贴您的数据并按多次解码即可确保其正确解码
  5. 最后,搜索一个名为dashmpd并享受您的网址

您可能还想查看这些链接以获取更多有用的信息和更新:

  • Youtube 视频 https://www.youtube.com/watch?v=6VjF638VObA关于 ExoPlayer:Android 上的自适应视频流
  • AndroidDev 博客 - 使用 ExoPlayer 播放 Youtube 视频,不知道演示应用程序中的示例 URL 来自哪里。 https://www.reddit.com/r/androiddev/comments/2sfhlc/using_exoplayer_to_play_youtube_videos_dont_know/
  • ExoPlayer 发行说明 https://github.com/google/ExoPlayer/blob/dev-v2/RELEASENOTES.md

最后,您也可以选择尝试在 Android 版本 4.2.2 上播放实时视频,而不必使用本文中提到的 ExoPlayerSO post https://stackoverflow.com/questions/21121259/how-can-i-play-youtube-live-streams-with-the-youtube-android-player-api.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ExoPlayer 将 YouTube 直播视频 (DASH) 流式传输到 Android 应用程序 的相关文章

  • 在android中,将相机预览流到视图上

    我想将 Android 相机的相机预览流式传输到视图上 目的是随后使用 onDraw 将各种内容添加到视图中 我不需要随时实际捕捉图像 它不必是最高质量或每秒最大数量的帧 有谁知道如何做到这一点 将其添加到您的 xml 中
  • 如何使用正则表达式验证 1-99 范围?

    我需要验证一些用户输入 以确保输入的数字在 1 99 范围内 含 这些必须是整数 Integer 值 允许前面加 0 但可选 有效值 1 01 10 99 09 无效值 0 007 100 10 5 010 到目前为止 我已经制定了以下正则
  • 从直方图计算平均值和百分位数?

    我编写了一个计时器 可以测量任何多线程应用程序中特定代码的性能 在下面的计时器中 它还会在地图中填充花费了 x 毫秒的调用次数 我将使用这张图作为我的直方图的一部分来进行进一步的分析 例如调用花费了这么多毫秒的百分比等等 public st
  • 添加到列表时有没有办法避免循环?

    我想知道这样的代码 List
  • 如何将 Android 添加到 Phonegap 平台版本 3

    经过大量挖掘 我相信这个问题 https stackoverflow com questions 18423444 phonegap 3 doesnt work with andriod studio与我没有添加任何用于构建phonegap
  • Spring Data JPA:查询如何返回非实体对象或对象列表?

    我在我的项目中使用 Spring Data JPA 我正在演奏数百万张唱片 我有一个要求 我必须获取各种表的数据并构建一个对象 然后将其绘制在 UI 上 现在如何实现我的 Spring 数据存储库 我读到它可以通过命名本机查询来实现 如果指
  • 我们如何测试包私有类?

    我正在看书Effective Java in Item 13 Minimize the accessibility of classes and members 它提到 为了方便测试 您可能想让类 接口或成员更易于访问 这在某种程度上是好的
  • 寻找局部最小值

    下面的代码正确地找到了数组的局部最大值 但未能找到局部最小值 我已经进行了网络搜索 以找到找到最小值的最佳方法 并且根据这些搜索 我认为我正在使用下面的正确方法 但是 在几天的时间里多次检查每一行之后 下面的代码中有一些我仍然没有看到的错误
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • Android模拟器中的网络访问

    我试图通过我的 Android 应用程序访问互联网 但我既成功又失败 我在构建应用程序时启动模拟器 并且应用程序安装得很好 我可以使用浏览器访问互联网 但是 当我尝试这个小代码片段时 InetAddress inet try inet In
  • 使用 Play Integrity API 时,Firebase 电话身份验证会出现缺少客户端标识符错误

    使用 Firebase 电话身份验证注册 登录时 身份验证流程始终会启动 reCAPTCHA 流程 并在返回应用程序后发出missing client identifier error 我的设置之前适用于设备验证 安全网络 API 除了我的
  • 使用Java绘制维恩图

    我正在尝试根据给定的布尔方程绘制维恩图 例如 a AND b AND c我想在 Android 手机上执行此操作 因此我需要找到一种使用 Java 来执行此操作的方法 我找到了一个完美的小部件 它可以完成我在这方面寻找的一切布尔代数计算器
  • Android:GestureDetector 无法与选项卡(TabActivity、Tabwidget)一起工作(gestureDetector.onTouchEvent(event) 始终为 false)

    我已经用不同的子活动实现了 TabActivity intent new Intent setClass this MyChildTabActiviy class Initialize a TabSpec for each tab and
  • 离子初始加载时间

    我正在使用 Ionic 构建一个简单的应用程序 但我的应用程序在冷启动时的初始加载时间方面存在性能问题 这是我所做的 collection repeat 代替带有 track by 的 ng repeat 原生滚动 overflow scr
  • 记录类名、方法名和行号的性能影响

    我正在我的 java 应用程序中实现日志记录 以便我可以调试应用程序投入生产后可能出现的潜在问题 考虑到在这种情况下 人们不会奢侈地使用 IDE 开发工具 以调试模式运行事物或单步执行完整代码 因此在每条消息中记录类名 方法名和行号将非常有
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • Android MulticastSocket.joinGroup 不会触发发送 IGMP 消息

    Code MulticastSocket s new MulticastSocket InetAddress addr InetAddress getByName 230 230 230 1 s joinGroup addr 在 Ubunt
  • 将对象从手机共享到 Android Wear

    我创建了一个应用程序 在此应用程序中 您拥有包含 2 个字符串 姓名和年龄 和一个位图 头像 的对象 所有内容都保存到 sqlite 数据库中 现在我希望可以在我的智能手表上访问这些对象 所以我想实现的是你可以去启动 启动应用程序并向左和向
  • 即使调整大小,如何获得屏幕的精确中间位置

    好的 这个问题有两部分 当我做一个JFrame 并在其上画一些东西 即使我将宽度设置为 400 并使其在一个项目击中它时 当然 允许项目宽度 它会反弹回来 但由于某种原因 它总是偏离屏幕约 10 个像素 有没有办法解决这个问题 或者我只需要
  • LifeCycleAware Fragment 中的片段生命周期事件

    我有一个生命周期感知片段和一个LifecycleObserver class public class MyFragment extends Fragment Override public void onCreate Nullable B

随机推荐

  • 如何使用 GCC/Clang 编译器了解/限制 C 程序中的静态堆栈大小? [复制]

    这个问题在这里已经有答案了 我正在编写一个嵌入式程序 该程序使用已知大小的静态有限堆栈区域 换句话说 我有 X 个字节的堆栈 并且没有覆盖操作系统可以根据需要为我分配更多堆栈 我想避免在运行时出现错误 并在构建时捕获它们 如果我错误地在某些
  • 如何为 B2B Web 应用程序设置 Lucene/Solr?

    Given 每个客户 商业客户 1 个数据库 5000 名客户 客户端拥有 2 到 2000 个用户 平均约为 100 个用户 客户端 每个数据库有 10 万到 1000 万条记录 用户需要经常搜索这些记录 这是导航数据的最佳方式 可能相关
  • 从使用pivot_table()创建的df中删除索引名称

    好吧 我检查了问题删除 pandas 中的索引名称 https stackoverflow com questions 29765548 remove index name in pandas 并且它不适用于我的情况 所以我有一个 df 我
  • 查询随结果集的大小而不是数据集的大小而缩放

    这是一个关于最新的问题Firebase 云 Firestore https firebase googleblog com 2017 10 introducing cloud firestore html 在这个文档中它是这样说的 它还允许
  • 允许绘图突出 rmarkdown html 中的块文本

    我正在准备一些 html 页面 使用rmarkdown 用于在线发布 在显示绘图时 我想利用典型计算机显示器上的更多可用宽度 这就是我预期目标受众查看我的页面的方式 knitr默认情况下 在常规缩放时似乎仅使用大约 900 像素 我发现了一
  • 如何控制cmake的子目录编译顺序?

    这是我的 CMakeLists txt ADD SUBDIRECTORY third ADD SUBDIRECTORY utils ADD SUBDIRECTORY rpc 但是目录 rpc 将在目录 utils 之前编译 实际上 rpc
  • JSP 中的 htmlentities 等效项?

    我是一个 php 人员 但我必须在 JSP 中做一些小项目 我想知道 JSP 中是否有相当于 htmlentities 函数 php 的 公共静态字符串 stringToHTMLString 字符串字符串 同样的事情也适用于公共语言 htt
  • CopyOnWriteArrayList 如何是线程安全的?

    我已经研究过OpenJDK 源代码 http hg openjdk java net jdk8u jdk8u jdk file 4797cd0713b4 src share classes java util concurrent Copy
  • 将十六进制字符串转换为图像文件[重复]

    这个问题在这里已经有答案了 我需要从收到的 xml 文件中读取表示 JPEG 文件的带有前导零的十六进制字符串 并将其保存为图像文件 图像数据看起来像 0000005000000050FF191818FF151715FF111413FF0E
  • Filebeat - 解析消息行中的字段

    我正在使用 Filebeat 将日志数据从本地 txt 文件发送到 Elasticsearch 并且 我想添加一些字段message事件行 例如时间戳和日志级别 例如 这是我的日志行之一 2016 09 22 13 51 02 877 IN
  • 如何将样式(css+html)与php隔离

    我如何隔离样式 css questions tagged css html questions tagged html from php questions tagged php 就像在 php 文件中只放入一些行 包括整个内容style
  • 在unity 3D中更改Cubical Shower 3d模型的尺寸

    我正在开发一个项目 该项目有一个立方体淋浴作为 3D 模型 它有两个不同的侧面 如前面提到的侧面 1 和侧面 2 另外一侧 1 分为两个屏幕 并且具有玻璃 框架和支架 与一侧 1 的屏幕 2 相同 我想在不改变支撑宽度和框架尺寸的情况下增加
  • 无 BOM 的 UTF-8

    我有 javascript 文件 每次我将它们转换为正确的格式时 我需要将它们保存为 UTF 8 无 BOM 记事本 当我在 Visual Studio 中打开它们时 它们会恢复为带有 BOM 的 UTF 8 我怎样才能阻止VS2010这样
  • 如何使用 JQuery 将样式应用到正确的标签

    我正在尝试添加更多逻辑my code https stackoverflow com questions 38539500 get input value using htmlfor 但它不起作用 我必须将我的图标包裹在span标签 这样我
  • DatePicker 无法在模态中工作

    我有一个网站和这是一个链接 http pastebin com WHHMnh3S 当您单击文本字段时 您可以看到 DatePicker 正在工作 但如果你点击我mportFriend gt Add Manual Friend gt 然后 如
  • @FunctionalInterface 如何影响 JVM 的运行时行为?

    我最初的问题是完全重复的this one https stackoverflow com q 27121563 1093528 也就是说 为什么这个接口有运行时保留策略 但接受的答案根本不能令我满意 原因有二 事实上这个接口是 Docume
  • 对于同一个 REST 方法,我们是否可以有多个 @Path 注释 [重复]

    这个问题在这里已经有答案了 我们可以有多个吗 Path同一 REST 方法的注释 即执行的方法相同 但在访问多个 URL 时执行 例如 我想运行searchNames 两者的方法http a b c and http a b 你不能有多个
  • Xamarin 表单的 YouTube 播放器

    您好 我正在尝试在以下支持下创建一个从 webview 继承的 youtubeviewyoutube api https github com nishanil YouTubePlayeriOS blob master Classes Yo
  • 由于无法找到或加载主类错误,Flink 集群未启动

    我正在尝试设置flink并运行集群 尽管我得到以下输出 看起来集群已启动 bin start cluster sh Starting cluster Starting standalonesession daemon on host LAP
  • 使用 ExoPlayer 将 YouTube 直播视频 (DASH) 流式传输到 Android 应用程序

    我正在制作一个可以将实时 YouTube 视频流式传输到我的应用程序的应用程序 我想使用 ExoPlayer 我浏览了 ExoPlayer 的演示应用程序 他们在 DASH 流中使用的 URL 是这样的 uri http www youtu