适用于Android和IOS的FFMPEG HLS流

m1m5dgzv  于 2023-03-09  发布在  iOS
关注(0)|答案(2)|浏览(160)

我试着用ffmpeg和apache2.2把视频流传输到移动的设备上,但没有成功。
我使用这个命令来创建段和播放列表:

ffmpeg -i http://x.x.x.x:8080 -codec:v libx264 -r 25 -pix_fmt yuv420p -profile:v baseline -level 3 -b:v 500k -s 640x480 -codec:a aac -strict experimental -ac 2 -b:a 128k -movflags faststart -flags -global_header -map 0 -f hls  -hls_time 10 -hls_list_size 5 -hls_allow_cache 0 -sc_threshold 0 -hls_flags delete_segments -hls_segment_filename out%05d.ts list.m3u8

源是由VLC媒体播放器流式传输的http流。
list.m3u8文件的示例内容:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-ALLOW-CACHE:NO
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:89
#EXTINF:10.000000,
out00089.ts
#EXTINF:10.000000,
out00090.ts
#EXTINF:10.000000,
out00091.ts
#EXTINF:10.000000,
out00092.ts
#EXTINF:9.000000,
out00093.ts
#EXT-X-ENDLIST

我创建了另一个播放列表文件- playlist.m3u8:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=512000
http://x.x.x.x/list.m3u8

如果我在VLC媒体播放器中打开这个(playlist.m3u8)文件,它就会播放。它也可以在桌面chrome和桌面firefox浏览器中使用Video-js插件flash fallback。
我在.htaccess文件中为.ts和.m3u8文件设置了正确的MIME类型:

AddType application/x-mpegURL .m3u8
AddType video/MP2T .ts

FF playlist.m3u8的探测输出:

Input #0, hls,applehttp, from 'playlist.m3u8':
    Duration: N/A, start: 1.400000, bitrate: N/A
    Program 0
    Metadata: variant_bitrate : 512000
Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0] / 0x001B), yuv420p, 640x480 [SAR 1:1 DAR 4:3], 25 fps, 25 tbr, 90k tbn, 50 tbc
Metadata: variant_bitrate : 512000
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 44100 Hz, stereo, fltp, 128 kb/s
Metadata: variant_bitrate : 512000

我该怎么做才能让它发挥作用?
更新
如果我提供一个到list.m3u8文件(由ffmpeg创建)的链接,它就可以工作。

cnh2zyt3

cnh2zyt31#

注意.m3u8流在Android设备中不完全支持,
“我看到很多人在播放.M3U8时遇到问题,这取决于流媒体所用的编解码器以及与设备的兼容性,例如,我的一些.m3u8文件仅在屏幕为1200 x800或更高的设备中受支持。”
来源:Play m3u8 video in android
例如,选项使用.mp4 streaming,或者您可以使用框架,例如:,https://www.vitamio.org/en/

qyswt5oh

qyswt5oh2#

您的playlist.m3u8应该是主播放列表。Check here
内部播放列表应该有一个相对URL,这是HLS主播放列表的原始格式。
虽然主播放列表只下载一次,但内部播放列表会被播放器多次引用。在这样做的同时,他们也可能面临CORS问题。为了避免这种情况,我建议给予一个相对的URL。

相关问题