安卓媒体播放器只播放m3u8音频流媒体
大家好,谢谢, 全天看,搜索和尝试,我不知道它是否可能,或者问题是否在代码中,或者问题是否在服务器中.... 首先,MediaPlayer可以播放M3U8文件吗? 以防万一...它仅在大于3.0或4.0的版本中? 如果我只是尝试在真实设备4.0.4中播放URL,我会发现错误(1,-1010)或错误100或-214 ....代码很简单: MediaPlayer mp = new MediaPlayer(); fich="http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8"; //e.g. mp.setDataSource(localContext, Uri.parse(fich)); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setVolume(((float)volumenAudio / 100), ((f
0 2024-02-17
编程技术问答社区
播放m3u8文件的Exoplayer安卓版
尝试了多种使用 videoview和Mediaplayer 播放M3U8文件的方式后,我决定放弃.每次我播放M3U8文件时,我都只会听到声音.(请不要从堆栈溢出中写下我的问题. 一直在问,终于知道 exoplayer 也许是我想要的.但是,外层似乎是新手,我无法找到任何适当的教程.这就是我本人的新手,所有关于跟踪器和布拉布拉的谈论对我来说似乎太复杂了.我只想能够从我的应用程序中的不同URL打开我的所有M3U8文件,而无需将它们传递给VLC或任何外部意图. 对于记录,我使用Kitkat及以上.因此,应该可以实现系工. 所以我迫切要求的是简单的教程,我如何使用exoplayer 或任何其他显示视频并播放音频的方式播放M3U8文件,而 not 只是其中之一.请不要将我链接到 Google Dev 上的Exoplayer页面.香港专业教育学院也去过那里. 预先感谢:) 解决方案 在Android 4.1+上,您可以使用此库 private void setupVideo
0 2024-02-17
编程技术问答社区
PhoneGap播放m3u8视频
我有一个index.html iframe,在该iframe内有以下代码: 该视频在iOS上播放不错,当我点击"完成"时,我会毫无问题地将其发送回该应用.当我在Android上尝试此操作时,它只是坐在那里一段时间.该应用程序同时仍处于活动状态. ios:6.1 Android 4.0.4 解决方案 您可以使用电话盖插件.这里已经创建了一个用于播放视频的人: https://github.com/macdonst/videoplayer 如果要在Android Pre 3.0上流式传输,则可以修改插件以使用Vitamio库: http://www.vitamio.org/en/download/
0 2024-02-09
编程技术问答社区
安卓HLS--流媒体无法获取片段
我为Android编写一个视频播放器,以通过HLS流式视频.在我的服务器上,我有M3U8-PLAYLIST和.TS-SEGMENTS. 我的代码看起来像这样: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vidSurface = (SurfaceView) findViewById(R.id.surfView); vidHolder = vidSurface.getHolder(); vidHolder.addCallback(this); } public void surfaceCreated(SurfaceHolder arg0) { try { mediaPlayer = new MediaPla
14 2024-02-09
编程技术问答社区
使用正则表达式解析HLS m3u8文件
我想解析HLS Master M3U8文件,并从中获取带宽,分辨率和文件名.当前,我正在使用字符串解析来搜索字符串以获取某些模式,并执行子字符串以获取值. 示例文件: #EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=476416,RESOLUTION=416x234 Stream1/index.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=763319,RESOLUTION=480x270 Stream2/index.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1050224,RESOLUTION=640x360 Stream3/index.m3u8 #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1910937,RESOLUTION=640x360 Stream4/index.m3u8 #EXT-X
8 2024-02-04
编程技术问答社区
在android 2.3上通过HTTPS播放.m3u8文件
在我的代码中的某个时刻,该应用程序找到指向.M3U8文件的URL.这是接下来发生的事情: mVideoView.setVideoURI(Uri.parse(feed.getUrl().toString())); // feed.getUrl returns the url mVideoView.start(); 并且在Android 3.1+上正常工作.之所以使用https,是因为它使用https(请参阅以下内容:所以我做的是为Android 2.2+创建了一个新版本,该应用程序使用 vitamio ,它应该使我更容易.但是,(android.widget.videoview)完美处理它,(io.vov.vitamio.widget.videoview)需要很长时间才能加载流并在崩溃时说出这一点: 时 但是,当我尝试加载此URL时: 我无法共享我需要使用的URL,但是以下是.m3U8的内容,它指向: #EXTM3U #EXT-X-STREAM-INF:PROGR
0 2024-02-01
编程技术问答社区
JW Player中S3托管的HLS视频的CORS配置
我很难播放一个自托管的JW播放器视频.这是用于配置播放器的JavaScript API中的相关参考. /jw-player/docs/developer-guide/customization/configuration-reference/#casting 这里有一些有关我的设置的细节: 1)视频以HLS流格式为单位.因此,我要传递给JW Player JavaScript API的文件具有.m3U8扩展. 2)该视频托管在S3上. 3)视频是通过云方向提供的. 这是我用来在JW播放器中加载视频的代码: var playerInstance = jwplayer('jwplayer'); playerInstance.setup({ file: , androidhls: true, cast: {}, }); 当我使用JW Pla
4 2024-01-25
编程技术问答社区
解密用AES-128加密的M3U8播放列表,不含IV
我目前正在构建一个用于下载M3U8播放列表的应用程序,但是我遇到了一个问题:如果播放列表已使用AES-128加密,例如.有这样的行: #EXT-X-KEY:METHOD=AES-128,URI="https://website.com/link.key",IV=0xblablabla 我必须在将段写入输出文件之前解密段,如果存在iv,则以下代码确实对我有用,但是如果IV属性不存在,则解密会产生错误的结果: var iv = "parsed iv"; // empty if not present var key_url = "parsed keyurl"; var AES = new AesManaged() { Mode = CipherMode.CBC, Key = await Client.GetByteArrayAsync(key_url) }; if (!string.IsNullOrEmpty(iv)) AES.IV = Func
0 2024-01-19
编程技术问答社区
如何解密AES-128加密的m3u8视频文件?
我试图解密AES-128加密的M3U8视频文件,例如: m3U8文件: #EXTM3U #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-ALLOW-CACHE:NO #EXT-X-VERSION:2 #EXT-X-FAXS-CM:MII6lAYJKoZIhvcNAQcCoII6hTCCOoECAQExCzAJBgUrDgMCGgUAM... very long key... #EXT-X-KEY:METHOD=AES-128,URI="faxs://faxs.adobe.com",IV=0X99b74007b6254e4bd1c6e03631cad15b #EXT-X-TARGETDURATION:8 #EXTINF:8, video.mp4Frag1Num0.ts #EXTINF:8, video.mp4Frag1Num1.ts ... 我已经尝试使用OpenSSL: openssl aes-128-cbc -d -kfile key.txt -iv
14 2024-01-19
编程技术问答社区
抓取json请求“ak”参数值
我目前正在尝试刮擦自学的M3U8 URL路径. 到目前为止,我设法将请求固定为使用M3U8信息产生JSON响应. 例如, https://feapi-yvpub.yahooapis.jp/v1/content/1579522?appid=dj0zaiZpPVZMTVFJR0FwZWpiMyZzPWNvbnN1bWVyc2VjcmV0Jng9YjU-&output=json&space_id=2078710307&domain=headlines.yahoo.co.jp&ak=e25b66ca8b37b7a383feecf4e084fe95&device_type=1100&thumb_width=1204&thumb_height=676&thumb_priority=l&thumb_bd=0 为了获得成功的请求,需要contentid(1579522),appid,space_id,device_type和ak参数.我设法刮擦ID和device_type值,但不知道从
12 2023-12-01
编程技术问答社区
SRS创建的M3U8文件不会仅在iOS Safari中播放,但是其他M3U8文件在iOS,Android和Web中起作用
我一直在为包括iOS,Android和Web在内的所有平台构建实时流媒体应用. 简单的实时服务器用于发布我的项目的视频流,它是M3U8文件. SRS制作的视频流文件在Web和Android上效果很好,但对于iPhone而不是. 但是,著名的演示M3U8文件也在iPhone上运行良好. 所以我认为我的srs.conf文件有一些错误的参数. 您可以使用以下服务检查我的问题. 以上测试服务,以下演示文件对iPhone,Android和Web都非常有效. https -1-abr-cdn.livepush.io/live_abr_cdn/emaiqcgozw-6/index.m3u8 请检查它在iPhone上的工作方式. https://prnt.sc/ukece_ihpei0 以下文件由SRS制作,它适用于Android和Web,但对iPhone不起作用. 当我播放此文件时,会发生以下问题. "媒体播放由于腐败问题或由于浏览器不支持所使用的
26 2023-11-18
编程技术问答社区
Video.js / Contrib-HLS在大多数浏览器中不能播放HLS(CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED)。
我有一个我正在构建的视频播放器,需要现场直播和点播流. 它似乎仅在Safari中工作正常. (减去我需要更新的自定义样式,忽略它) 在所有其他浏览器中,我都会收到此错误: VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) The media could not be loaded, either because the server or network failed or because the format is not supported. 我想念什么?似乎与contry-HLS演示页面实现非常相似,后者在所有浏览器中都效果很好. 这是回购: https://github.com/github.com/adult-swim/成人-Swim-Video-player 和要查看的分支是feature-latest-versions 用于测试,我实际上我实际上使用了从videojs-contrib-hl
14 2023-11-18
编程技术问答社区
使用节点JS的HLS流媒体
我正在尝试使用node.js来流hls内容.不知何故它不起作用.如果有人帮助我,这将有很大的帮助. 问题: - 尝试从node.js提供HLS内容(不是Live流,而是一组.ts文件和.m3U8 playlist ,或换句话说,VOD Content ) 文件夹结构 stream_test |--- app.js |--- node_modules |--- streamcontent |--- test.m3u8 |--- segment0.ts |--- segment1.ts . . . |--- segment127.ts 我的app.js看起来像这个 var http = require('http'), url = require('url'), path = require('path'), fs = require
4 2023-11-18
编程技术问答社区
如何在手机和桌面上播放html5视频播放m3U8?
我的HLS M3U8在iOS上表现良好,并且具有HTML5 的Android ,但不在台式机或桌面Mac(Chrome,firefox)上玩 如何在台式PC上玩M3U8? 是否有会在桌面和移动设备上同时播放的视频流格式? 解决方案 HLS仅在Mac OS Safari 6+的桌面上工作.在这里看用于参考. 对于桌面上的HTML5视频,您可以考虑使用MPEG仪表板.它具有 js lib 浏览器: 截至13年8月30日,桌面镀铬,桌面Internet Explorer 11和 Android的移动镀铬Beta是唯一支持的浏览器. 如果您想要具有自适应流技术的较宽浏览器/设备覆盖范围,则需要考虑使用闪光灯来支持RTMP和HDS或Silverlight具有光滑的流(Flash具有更好的覆盖范围). 今天,大多数媒体公司都使用混合方法闪光灯(HDS/RTMP -Desktop)/HTML5(HLS-移动)使用JavaScript检查设
8 2023-11-18
编程技术问答社区
从单个视频和循环中创建假的hls直播流
我正在尝试从编码为.ts文件的单个视频中模拟实时流.播放列表文件看起来像: #EXTM3U #EXT-X-TARGETDURATION:10 #EXT-X-PLAYLIST-TYPE:EVENT #EXT-X-VERSION:7 #EXT-X-START:TIME-OFFSET=9.56,PRECISE=YES #EXT-X-MEDIA-SEQUENCE:1 #EXTINF:30.6250, https://example.com/720p0.ts #EXT-X-DISCONTINUITY #EXTINF:29.5000, https://example.com/720p1.ts #EXT-X-DISCONTINUITY #EXTINF:32.8750, https://example.com/720p2.ts #EXT-X-DISCONTINUITY #EXTINF:30.8750, https://example.com/720p3.ts #ext-x start:time
2 2023-11-18
编程技术问答社区
视频js, 如何动态更新m3u8播放列表
我想从后端添加新的传入块到已经贴上" Live" M3U8 Playlist 的播放器 这是现有的播放列表(已经设置和播放) #EXTM3U #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-TARGETDURATION:6 #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-PROGRAM-DATE-TIME:2018-10-19T16:39:07Z #EXTINF:6.000, 56-06000.ts #EXTINF:6.000, 56-06000.ts #EXTINF:6.000, 56-06000.ts #EXTINF:6.000, 56-06000.ts #EXT-X-ENDLIST 这是一个更新的播放列表,我想用下一个播放列表替换旧播放列表(在下面列出),但我不想用comand(player.src(...))重新加载videojs播放器 #EXTM3U #EXT-X-PLAYLIST-TYPE:V
0 2023-11-18
编程技术问答社区
如何从mp4,m3u8或任何其他文件中获取视频时长
我发现nreco.videoinfo库是最佳选择,更简单 1]在Nuget软件包管理器中找到NRECO.VIDEOINFO库,然后将其导入您的项目 2]导入命名空间"使用nreco.videoinfo" 3]将以下代码行添加到方法中. var ffProbe = new FFProbe(); var videoInfo = ffProbe.GetMediaInfo(blob.Uri.AbsoluteUri); return videoInfo.Duration.TotalMilliseconds; 在这里您可以查看其他选项 解决方案 为什么不使用Windows Media Player解决此问题? using WMPLib; public Double getDuration(String path) { WindowsMediaPlayer wmp = new WindowsMediaPlayerClass(); IWMPMe
0 2023-11-18
编程技术问答社区
计算出一个m3u8网址引用的视频的文件大小
如果M3U8 URL引用了散布,则没有视频大小,但是,如果M3U8 URL对视频的引用,则有任何方法可以找出视频文件大小吗? 我不想添加每个视频段的所有HTTP content-length标题,因为它有点乏味. 我提供 解决方案 M3U8清单文件中特定视频流的持续时间不是强制性的,但是如果给定的视频流通常会在其自己的容器的标题中包含此信息. 例如,如果流是MP4流,则一旦开始阅读,就可以从标题" MOOV"原子中获取持续时间,而不必读取每个段并添加其内容长度. 值得注意的是,特别是对于MP4,您需要在文件开始时将MOOV ATOM放置 - 大多数已准备用于流式传输的MP4视频都将完成此操作. 查看文件大小:假设您正在使用HLS视频,M3U8文件实际上是视频的多个块版本.这些不同的版本是不同的分辨率和比特率.目的是允许玩家为设备和当前网络条件选择最佳的比特率/分辨率.这被称为自适应比特率流 - 有关更多信息,请参见此处:一个> 因此,实际上没有一个ABR
6 2023-11-18
编程技术问答社区