在Android中使用FFMPEG下载M3U8格式



我想在安卓上下载一个m3u8 hls视频。我正在使用这个https://github.com/WritingMinds/ffmpeg-android-java的 GitHub 项目。我的代码在这样的文件中完美运行

#EXTM3U
#EXT-X-VERSION:5
#EXT-X-STREAM-INF:BANDWIDTH=560000,RESOLUTION=560x320
chunklist_w1370359847_b560000.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=280000,RESOLUTION=280x160
chunklist_w1370359847_b280000.m3u8

但是当我想得到其他一些像

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=307200
http://example.com/hls.m3u8?mwk=8337411690192241322178516954798640895&s=67456834233263474843895996561490854813
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3584000
http://example.com/hls.m3u8?mwk=8337411690192241322178516954798640895&s=67917168793981422148373769951238010028
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2457600
http://example.com/hls.m3u8?mwk=8337411690192241322178516954798640895&s=58718242671779879146351545392642701787
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1228800
http://example.com/hls.m3u8?mwk=8337411690192241322178516954798640895&s=76033982771160137261725364336240341356
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=614400
http://example.com/hls.m3u8?mwk=8337411690192241322178516954798640895&s=8799167971211576392205612488036401876
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=65536
http://example.com/hls.m3u8?mwk=8337411690192241322178516954798640895&s=84365905843905491151101581870671639752

,我收到Protocol not found错误。我的网址是http,我使用下面的命令

String.format("-i %s -acodec %s -bsf:a aac_adtstoasc -vcodec %s %s", mM3u8Url, "copy", "copy", dir.toString() + "/" + mContentId + ".mp4");

也许你的 m3u8 是加密的。你能在你的m3u8中找到"#EXT-X-KEY:METHOD=AES-128"吗,这意味着你需要解码它。

最新更新