HTTP直播流是一种媒体流方法,包括下载mpeg2ts文件的片段,包含视频(H.264)和/或音频(AAC或MP3)。该规范由Apple引入,并在iOS中广泛使用。
我一直在搜索有关 HLS 流的很多信息,并成功地使用 nodejs 创建了一个简单的 HLS 流服务器,现在的问题是我需要向 .ts 块添加一层 ffmpeg 编码
上下文: 我有一个 m3u8 扩展名的视频,该视频在 video/ 文件夹中分为多个块: 段.m3u8 段0.ts 段1.ts 段2.ts ... 在客户端(带有视频和源标签的 ReactJs ...
AVSampleBufferAttachContentKey 不起作用,为什么?
我正在尝试通过 VideoToolbox 播放受保护的 h264 流。但是,当我尝试通过 AVSampleBufferAttachContentKey(::) 将 AVContentKey 绑定到 CMSampleBuffer 时,出现错误: 错误域=
如何将质量添加到 hls 播放器 (plyr.io) 以及其他控件(倒带、快进、当前时间)?
我正在尝试创建 html/php 播放器(请参阅下面的 html 代码) <question vote="0"> <p>我正在尝试创建 html/php 播放器(请参阅下面的 html 代码)</p> <pre><code><html> <head> <link rel="stylesheet" href="https://cdn.plyr.io/3.5.6/plyr.css" /> <script src="https://cdn.plyr.io/3.5.6/plyr.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/plyr/3.7.3/plyr.min.js"></script> <script src="https://cdn.jsdelivr.net/hls.js/latest/hls.js"></script> </head> <body> <div id="player"> <video title="<?php echo $_REQUEST["q"]; ?>" preload="none" id="video" controls="controls" autoplay controls crossorigin style="width:100%;height:100%;"></video> </div> <script> const controls = [ 'play-large', 'play', 'fast-forward', 'progress', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'fullscreen' ]; const player = new Plyr('#video',{controls}); setTimeout(videovisible, 4000) function videovisible() { document.getElementById('loading').style.display = 'none' } var url="https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8"; var video = document.getElementById('video'); if (Hls.isSupported()) { var hls = new Hls(); hls.loadSource(url); hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED, function() { video.play(); }); } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = url; video.addEventListener('loadedmetadata', function() { video.play(); }); } </script> </body> </html> </code></pre> <p>我能够向播放器添加控件(见下面的屏幕截图 1)。</p> <p><a href="https://i.stack.imgur.com/UL9NU.png" target="_blank"><img src="https://cdn.imgupio.com/i/AWkuc3RhY2suaW1ndXIuY29tL1VMOU5VLnBuZw==" alt="screenshot 1"/></a></p> <p>但是当我使用 <a href="https://github.com/sampotts/plyr/issues/1741#issuecomment-640293554" rel="nofollow noreferrer">此代码</a> 添加质量选项时,它仅在设置按钮下显示质量并隐藏所有控件(倒带、快进、当前时间等)(参见屏幕截图 2)。</p> <p><a href="https://i.stack.imgur.com/kVVmD.png" target="_blank"><img src="https://cdn.imgupio.com/i/AWkuc3RhY2suaW1ndXIuY29tL2tWVm1ELnBuZw==" alt="screenshot 2"/></a></p> <p>我尝试使用 <a href="https://github.com/sampotts/plyr/issues/1741#issuecomment-640293554" rel="nofollow noreferrer">此代码</a> 添加质量选项,但它仅在设置按钮下显示质量并隐藏所有控件(倒带、快进、当前时间等)所以不知道这里出了什么问题。这是修改后的代码。</p> <pre><code>var video = document.getElementById('video'); var url = 'https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8'; const controls = [ 'play-large', 'play', 'fast-forward', 'progress', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'fullscreen' ]; const defaultOptions = {}; function updateQuality(newQuality) { window.hls.levels.forEach((level, levelIndex) => { if (level.height === newQuality) { console.log("Found quality match with " + newQuality); window.hls.currentLevel = levelIndex; } }); } if (Hls.isSupported()) { var hls = new Hls(); hls.loadSource(url); //hls.attachMedia(video); hls.on(Hls.Events.MANIFEST_PARSED, function(event,data) { // Transform available levels into an array of integers (height values). var availableQualities = hls.levels.map((l) => l.height) // Add new qualities to option defaultOptions.quality = { default: availableQualities[0], options: availableQualities, // this ensures Plyr to use Hls to update quality level forced: true, onChange: (e) => updateQuality(e), } controls.control ={ controls:['play-large', 'play', 'progress', 'current-time', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'fullscreen'], } // Initialize here var player = new Plyr('video',defaultOptions,controls); }); hls.attachMedia(video); } else if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = url; video.addEventListener('loadedmetadata', function(event,data) { var player = new Plyr('video',defaultOptions,controls); video.play(); }); } </code></pre> <p>如何在播放器中保持控制和质量?任何指导将不胜感激。 TIA:)</p> </question> </body></html>
UnityWebRequest已经发送;无法再次开始发送请求
我正在尝试使用 golang 从服务器重新生成令牌 当我在 localhost 中托管此 url 时,我在 chrome 站点中都获得了 rtc 和 rtm 令牌 http://localhost:8080/rte/agora/publisher/uid/1234/ 后来我三...
在 avplayer (safari 16.3) 上切换分辨率时不使用再现报告
我正在开发 LL-HLS 功能。 在 Safari 中播放我开发的 LL-HLS 时,EXT-X-RENDITION-REPORT 标签似乎在 ABR 更改分辨率时不起作用。 改变
我正在尝试在 shaka 播放器上加载 VOD。 这是我的网址: https://5b48f8f32d3be.streamlock.net/023a27950bd44774/mp4:22436e792e8b42de_HD.0.mp4/playlist.m3u8 我在控制台中不断收到 4032 错误...
我目前面临着我遇到的最奇怪的问题,所以我希望有人能解释为什么会这样。我目前正在将我的电影和节目库转换为 HLS 以进行缓冲和
使用 Android Studio 和 ESP32-Cam 的直播应用程序
我已经设置了我的 ESP32 摄像头,它在本地网络中运行良好。但是,我想将它与我的 android 应用程序集成在一起,即使在网络之外,用户也可以看到直播。我看...
所以我最近开始使用SRS(https:/github.comossrssrs),我已经有很多问题想办法让FFMpeg工作。但现在不同了,我需要做基本的 ...
直接服务静态视频内容与通过自适应流媒体协议(HLS,DASH)服务。
通过自适应流媒体协议(如HLS或DASH)来提供静态视频内容(非实时流),在速度上是否比直接使用HTTP服务器作为文件提供服务有优势? ...
我用rtmp-ffmpeg技术重播流媒体,在etcnginxsites-available中,我允许我的域名显示我的流媒体,就像这样: server { listen 80; #root varwwwhtml; #index ...
我正在使用media player js来制作视频,我试图在ios和android中播放hls和dash视频格式。下面是我目前所拥有的。现场演示代码笔:现场演示HTML
我正在建立一个网络应用程序,它涉及到提供各种视频内容。对网络友好的音频和视频编解码器的处理没有任何问题,但我在设计时遇到了麻烦。
我有一个文件,有字幕刻录到它,他们是完全同步的。这是文件。https:/983yqbz442.s3.amazonaws.comlittle-mermaid-captions.mp4我运行这个命令转换为hls......
我正在开发一个tvOS应用程序,在该应用程序中,我使用AVPlayer播放HLS播放列表,该列表为某些语言提供两种格式的音频。例如,我使用AVPlayer播放一个HLS播放列表,该列表为某些语言提供两种格式的音频。法语 (AAC) 法语 (EC-3) 英语 我...
我正在使用VideoJS播放器,并且有一个CMAF视频,所以我正在使用HLS和DASH。我也在使用所有3种DRM。HLS的Fairplay,widevine和dash的playready。我的问题是,我应该包括...
我们正在开发一个移动视频应用,需要决定HLS和MPEG-DASH之间的视频协议。我们的主要考虑是这2个协议中哪一个对浏览器的支持和兼容性更好。
Apple TV AVPlayerViewController在寻找暂停的流时,没有出现帧的缩略图。 tvOS 11
从tvOS 11开始,对于开箱即用的AVPlayerViewController来说,在寻求暂停的流时,画面的缩略图是不存在的。我用tvOS 10检查了相同的HLS流,我确实看到了一个缩略图。我有...
有什么方法可以让我们在浏览器中直播 "videomp2t "的内容吗?我正在构建一个直播应用,其中一些URL没有指定任何mimetype,但内容是 "videomp2t"。我试过...