kaltura / nginx-vod-module

NGINX-based MP4 Repackager
GNU Affero General Public License v3.0
1.99k stars 439 forks source link

hevc in mp4 do HLS service NOT work well #1109

Open wnpllrzodiac opened 4 years ago

wnpllrzodiac commented 4 years ago

I transcode a clip using ffmpeg with libx265 to a mp4 media file. Then use nginx-vod-module do HLS service on-the-fly. I found that play mp4 is good using ffplay. But play hls protocol is bad, play speed is abnormal.

for hls ffplay http://ipaddr:8888/tyvod/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4.m3u8

for mp4(hevc) ffplay http://ipaddr:8888/tyvod/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4

wnpllrzodiac commented 4 years ago

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://ipaddr/tyvod/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2mp41 encoder : Lavf57.56.101 Duration: 00:10:00.20, start: 0.000000, bitrate: 676 kb/s Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 640x360 [SAR 1:1 DAR 16:9], 605 kb/s, 25 fps, 25 tbr, 12800 tbn, 25 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 63 kb/s (default) Metadata: handler_name : SoundHandler

wnpllrzodiac commented 4 years ago

EXTM3U

EXT-X-TARGETDURATION:16

EXT-X-ALLOW-CACHE:YES

EXT-X-PLAYLIST-TYPE:VOD

EXT-X-VERSION:6

EXT-X-MEDIA-SEQUENCE:1

EXT-X-MAP:URI="http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/init-v1-a1.mp4"

EXTINF:9.920,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-1-v1-a1.m4s

EXTINF:10.080,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-2-v1-a1.m4s

EXTINF:7.720,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-3-v1-a1.m4s ...

EXTINF:5.920,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-64-v1-a1.m4s

EXTINF:9.240,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-65-v1-a1.m4s

EXTINF:10.400,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-66-v1-a1.m4s

EXTINF:4.320,

http://ipaddr:8888/tyvod_done/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/segment-67-v1-a1.m4s

EXT-X-ENDLIST

wnpllrzodiac commented 4 years ago

BTW, why playlist is NOT ts, but mp4 initial and m4s latter?

wnpllrzodiac commented 4 years ago

problem media file to do HLS service using nginx-vod-module https://iloveyaya.ga:9443/test/tmp/bad_hevc.mp4

erankor commented 4 years ago
  1. Apple devices do not play HEVC with MPEG-TS, only fMP4
  2. I don't see here a working URL for the HLS stream
  3. I suggest testing on some iOS device
wnpllrzodiac commented 4 years ago
2\. I don't see here a working URL for the HLS stream

I use nginx do proxy_pass and DONT want to paste real ip addr in issue, so replace it with ipaddr http://ipaddr:8888/tyvod/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4.m3u8 -> http://ipaddr:8888/tyvod/vod_trans_done/20200310111447l1e6nurq6r2naj39dt/20200310111412_6f3fffd09b2e4c6aa_libx265_600.mp4/index.m3u8