我正在尝试串联python中.m3u8播放列表中的.ts文件,
有什么办法吗?如果是,请说明如何
提前致谢
我有一个我正在构建的视频播放器需要播放HLS直播和点播流.
它似乎只在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.
我错过了什么?看起来非常类似于contrib-hls演示页面实现,它在所有浏览器中都可以正常运行.
这是回购:https: //github.com/adult-swim/adult-swim-video-player和要看的分支是feature-latest-versions
为了测试我实际上在这里使用来自videojs-contrib-hls演示页面的下载视频:http://videojs.github.io/videojs-contrib-hls/
这是我在初始化VideoJS的地方:https://github.com/adult-swim/adult-swim-video-player/blob/feature-latest-versions/app/scripts/views/adult-swim -视频- player.js#L56
这是代码的两个编译版本:
http://www.adultswim.com/dev/as-player/ - on demand
http://www.adultswim.com/dev/as-player-live/ - live
我正在使用这些版本:
video.js:5.5.2
videojs-contrib-hls:1.3.4
videos-contrib-media-sources:2.4.4
我正在尝试让AVPlayer播放作为本地文件的m3u8播放列表。
我已经使用苹果的示例播放列表之一将其缩小为一个简单的测试用例:
https://tungsten.aaplimg.com/VOD/bipbop_adv_fmp4_example/master.m3u8
Run Code Online (Sandbox Code Playgroud)
如果我从远程URL播放此播放列表,则AVPlayer会播放得很好。但是,如果我将此播放列表下载到本地文件,然后将本地文件URL交给AVPlayer,则AVPlayer将不会播放它。它只是显示划掉的比赛符号。
有趣的是,这也可以与Safari复制。Safari将播放远程播放列表,但不播放本地文件。还要注意的是,AVPlayer的这种行为在iOS 10.2和macOS 10.12.1上是相同的。另外,直接播放mp4媒体文件(未包装在播放列表中)似乎也没有此问题,因为它既可以从远程URL播放,也可以从本地文件播放。
检查AVPlayerItem.error不会导致任何有用的事情:
An unknown error occurred (-12865)
The operation could not be completed
Run Code Online (Sandbox Code Playgroud)
有谁知道AVPlayer无法播放本地播放列表的任何限制?
谢谢。
我正在使用ffmpeg将mp4转换为m3u8。但是首先我需要使mp4变小。我使用以下代码将其缩小:
ffmpeg -i big.mp4 -b 1000000 small.mp4
Run Code Online (Sandbox Code Playgroud)
然后我使用此代码将其转换为m3u8
ffmpeg -i small.mp4 -g 60 -hls_time 2 -hls_list_size 0 -hls_segment_size 500000 output.m3u8
Run Code Online (Sandbox Code Playgroud)
有没有办法一次做到这一点?
我想从后端添加新的传入块到已经播放“实时”m3u8 播放列表的播放器
这是一个现有的播放列表(已经设置和播放)
#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
Run Code Online (Sandbox Code Playgroud)
这是一个更新的播放列表,我想用下一个替换旧的播放列表(在下面列出),但我不想用命令重新加载 videojs 播放器 (player.src(...))
#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
....
....
many another chunks
....
....
#EXT-X-ENDLIST
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?或者也许存在其他更新播放列表的好方法?
问题:我需要将 MP3(来源不明)转换为 M3u8 文件,以便我可以 HLS 流式传输它们。
此命令适用于名为“jesussaves.mp3”的歌曲
ffmpeg -i ../jesussaves.mp3 -c:a aac -b:a 192k -ac 2 -f hls -hls_time 10 -preset ultrafast -flags -global_header master.m3u8
当我将其更改为使用歌曲“In my Darkest Hour”时 -(我已将文件重命名为 inmydh.mp3) - 我只得到一个 TS 文件输出,而不是多个。日志在这里:https : //ibb.co/5nG0j01
谢谢
大家好,提前谢谢,
经过一整天的查找,搜索和尝试,我不知道它是否可能,或者问题是否在代码中,或者问题是否在服务器中....
首先,MediaPlayer可以播放m3u8文件吗?
如果是......它只在大于3.0或4.0的版本中?
如果我只是尝试在真实设备4.0.4中播放网址我得到错误(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), ((float)volumenAudio / 100));
mp.prepare();
Run Code Online (Sandbox Code Playgroud)
我这样做是否存在基本错误?我不知道的事情?
最好的问候和感谢,
我有一个 mp4 文件,input0.mp4。现在我想一步一步将其转换为 HLS 并且仅保留音频。现在我可以通过以下两个步骤来释放它。首先将其转换为 mp3 文件,然后将 mp3 文件切片为 m3m8。
ffmpeg -i input0.mp4 input0.mp3
ffmpeg -i input0.mp3 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 output.m3u8
Run Code Online (Sandbox Code Playgroud)
如果我想用ffmpeg一步释放一下,该怎么做呢?
这里我有一个 manifest:index.m3u8
和 12 个段。我的问题是 VLC 播放器只播放manifest
. 这是我的清单:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION:18
#EXTINF:12.960,
sample-0.ts
#EXTINF:10.640,
sample-1.ts
#EXTINF:18.440,
sample-2.ts
#EXTINF:10.000,
sample-3.ts
#EXTINF:12.920,
sample-4.ts
#EXTINF:10.800,
sample-5.ts
#EXTINF:13.400,
sample-6.ts
#EXTINF:12.240,
sample-7.ts
#EXTINF:11.720,
sample-8.ts
#EXTINF:15.320,
sample-9.ts
#EXTINF:13.200,
sample-10.ts
#EXTINF:10.480,
sample-11.ts
#EXTINF:11.800,
sample-12.ts
Run Code Online (Sandbox Code Playgroud)
使用此清单,VLC 从 sample-8.ts 播放。我试图拉出一些片段,离开 sample-0.ts -> sample-7.ts,然后 VLC 从 sample-3.ts 播放。我的清单有什么问题?非常感激你的帮助。
我正在尝试从当地付费通行处获取屏幕截图,以便使用图像识别来了解其拥堵程度。我尝试使用 ffmpeg 在每次从 AWS Lambda 运行命令时提取屏幕截图。我的问题是我无法从 m3u8 文件中提取任何类型的图像。
http://roads.mk/315/video-kameri
当我打开其中一台摄像机时,实时流显示正常,但当我右键单击复制地址时,我得到一个 blob 链接
斑点:http://roads.mk/cb301be0-3e70-4d09-af2b-3f3d44ee8f4f
幸运的是,在该网站的移动版本上,一旦单击链接,它就会立即下载 m3u8 文件。使用命令放入 ffmpeg 后
ffmpeg -i "gradsko_1.m3u8" -vf fps=1/3600 grad%04d.jpg
我得到回应
[hls @ 000000ce3d26d700] Skip ('#EXT-X-VERSION:3')
[hls @ 000000ce3d26d700] Opening 'gradsko_1-586008.ts' for reading
[hls @ 000000ce3d26d700] Failed to open segment 586008 of playlist 0
[hls @ 000000ce3d26d700] Opening 'gradsko_1-586009.ts' for reading
[hls @ 000000ce3d26d700] Failed to open segment 586009 of playlist 0
[hls @ 000000ce3d26d700] Opening 'gradsko_1-586010.ts' for reading
[hls @ 000000ce3d26d700] Failed to open …
Run Code Online (Sandbox Code Playgroud) 我有一个.m3u8
链接,我正在尝试将其下载为.mp3
文件。
import m3u8
import subprocess
import requests
link = 'https://cs9-9v4.vkuseraudio.net/s/v1/ac/NeMmHNX2Iyt08MZ4z5fELAMybgSNR6T1xYEcBEv5Kdsenci3KHOAC-1fKapAV9vxwVOBIik40I4DwfrN-a_jtjILYVcx3mLTNCzKo1UF-UhbKOztLrboF9NEn1jzZs1Jl0ijfmccog6aAcB4PcdnrxPzXY7WCMVWtUjWKOgHad5a-g0/index.m3u8'
m3u8_parsed = m3u8.load(link)
with open('track.ts', 'wb') as f:
for segment in m3u8_parsed.segments:
r = requests.get(segment.absolute_uri)
f.write(r.content)
subprocess.run(['ffmpeg', '-i', 'track.ts', 'track.mp3'])
Run Code Online (Sandbox Code Playgroud)
结果是该track.ts
文件占用了 6MB 存储空间,但当我尝试使用 VLC 播放器播放它时没有声音,而track.mp3
基本上是一个占用几千字节的空文件。
是否可以通过http://livestream.com/accounts/7970204/events/2926299这样的livestream.com频道获取并从中获取m3u8 HTTP直播流媒体?