FFMPEG HLS STREAM MULTIPLE AUDIO/SUBTITLES

alt text
File source : check.mp4 (gồm luồng audio và subtitle)

ffprobe check.mp4 
Stream #0:0(und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, progressive), 640x360 [SAR 1:1 DAR 16:9], 998 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 23.98 tbc (default)
Metadata:
  handler_name    : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 7.1, fltp, 128 kb/s (default)
Metadata:
  handler_name    : SoundHandler
Stream #0:2(und): Subtitle: mov_text (tx3g / 0x67337874), 640x360, 0 kb/s (default)
Metadata:
  handler_name    : SubtitleHandler
Stream #0:3(eng): Subtitle: mov_text (tx3g / 0x67337874), 640x360, 0 kb/s
Metadata:
  handler_name    : SubtitleHandler
Stream #0:4(eng): Data: bin_data (text / 0x74786574)

1. SUBTITLE

Tách file sub :

ffmpeg -i check.mp4 -map 0:2 -f webvtt sub.vtt

or

ffmpeg -i check.mp4 -map 0:s:0 -f webvtt sub.vtt

HLS SUBTITLE :

ffmpeg -i sub.vtt -f segment -segment_time 10 -segment_list_size 0 -segment_list subtitle/sub.m3u8 -segment_format webvtt -scodec copy subtitle/sub-%d.vtt

2. AUDIO

HLS audio :

ffmpeg -i check.mp4 -threads 0 -muxdelay 0 -y -map 0:1 -codec copy -f segment -segment_time 10 -segment_list_size 0 -segment_list audio/audio.m3u8 -segment_format mpegts audio/audio_%d.aac

3. VIDEO

Converse clip H265 > H264 :

ffmpeg -i check.mp4 -threads 0 -muxdelay 0 -y -pix_fmt yuv420p -movflags +faststart -r 29.97 -g 60 -refs 1 -vcodec libx264 -profile:v baseline -scodec copy -f mpegts check.ts

HLS video :

ffmpeg -i check.ts -threads 0 -muxdelay 0 -y -map 0:v -vcodec copy -f hls -hls_time 10 -hls_list_size 0 video/index.m3u8

4. File M3U8

index.m3u8 :

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Vietnamese",FORCED=NO,AUTOSELECT=YES,URI="subtitle/sub.m3u8",LANGUAGE="vi"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="en",NAME="English",DEFAULT=YES,AUTOSELECT=YES,URI="audio/audio.m3u8",
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=520929,CODECS="avc1.4d4015,mp4a.40.2",RESOLUTION=640x360,AUDIO="aac",SUBTITLES="subs"
video/index.m3u8

Ghi chú / Note

Bạn có thể gộp chung tất cả command trên lại thành 1 dòng :

ffmpeg -i check.mp4 -map 0:s:0 -f webvtt -  | ffmpeg -i -  -f segment -segment_time 10 -segment_list_size 0 -segment_list subtitle/sub.m3u8 -segment_format webvtt -scodec copy subtitle/sub-%d.vtt | ffmpeg -i check.mp4 -threads 0 -muxdelay 0 -y -map 0:a:0 -codec copy -f segment -segment_time 10 -segment_list_size 0 -segment_list audio/audio.m3u8 -segment_format mpegts audio/audio_%d.aac | ffmpeg -i check.mp4 -threads 0 -muxdelay 0 -y -pix_fmt yuv420p -movflags +faststart -r 29.97 -g 60 -refs 1 -vcodec libx264 -profile:v baseline -scodec copy -f mpegts -  | ffmpeg -i -  -threads 0 -muxdelay 0 -y -map 0:v -vcodec copy -f hls -hls_time 10 -hls_list_size 0 video/index.m3u8

DOWNLOAD LAB TEST

Full file : https://drive.google.com/file/d/1rU6yhN_DSpILi1i8OalTl4VtJt5WlzSN/view

Clip test (check.mp4) : http://www.mediafire.com/file/3johtl8ffd3uolx/check.mp4

alt text

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

White

Quang Nguyễn

5 bài viết.
22 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
White
18 10
FFmpeg là một tool dạng dòng lệnh được sử dụng để chuyển đổi các tập tin đa phương tiện giữa các định dạng khác nhau. Bài viết này trình bày cách s...
Quang Nguyễn viết hơn 2 năm trước
18 10
White
5 8
1. Vài câu lệnh encode với FFMPEG Thường câu lệnh FFMPEG có định dạng : ffmpeg i i: input file Chuyển đổi MPEG sang 3GP ffmpeg i movie1.mpeg a...
Quang Nguyễn viết hơn 2 năm trước
5 8
White
1 0
MPEGDASH Media Presentation Description (MPD) là dạng XML document chứa thông tin về các phân đoạn media, các mối quan hệ và thông tin cần thiết để...
Quang Nguyễn viết 1 năm trước
1 0
Bài viết liên quan
White
28 6
Xin chào mọi người :D Trong bài viết này mình sẽ trình bày một cách cơ bản để ứng dụng kỹ thuật Http Live Streaming (HLS) để play video trên web, ...
Nguyễn Thế Huy viết hơn 2 năm trước
28 6
White
0 0
Sáng sớm đọc (Link) thấy giới thiệu về web (Link). Dùng cái này để hướng dẫn, chia sẻ cũng tuyệt nhỉ. Đang nghiên cứu sơ sơ xem nó thế nào. Có gì...
Giã Dương Đức Minh viết hơn 5 năm trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


White
{{userFollowed ? 'Following' : 'Follow'}}
5 bài viết.
22 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!