Я ищу решение для продолжения перекодирования видеофайла в мультибитрейт HLS с разделенной звуковой дорожкой
. В основном я получил видеофайл, я перекодировал его в 4 разрешения + 1 звуковую дорожку
- 180p
- 360p * 1008 *
- 720p
- 1080p
- 2160p (возможно)
- Audio1
- Audio2 (возможно)
, но для примера вот моя команда 180p:
ffmpeg -i ${source} \
-pix_fmt yuv420p \
-c:v libx264 \
-b:v 230k -minrate:v 230k -maxrate:v 230k -bufsize:v 200k \
-profile:v baseline -level 3.0 \
-x264opts scenecut=0:keyint=75:min-keyint=75 \
-hls_time 3 \
-hls_playlist_type vod \
-r 25 \
-vf scale=w=320:h=180:force_original_aspect_ratio=decrease \
-an \
-f hls \
-hls_segment_filename ../OUT/${base_name}/180p/180p_%06d.ts ../OUT/${base_name}/180p/180p.m3u8
и звуковая дорожка:
ffmpeg -i ${source} \
-vn \
-c:a aac \
-b:a 128k \
-ar:a 48000 \
-ac:a 2 \
-hls_time 3 \
-hls_playlist_type vod \
-hls_segment_filename ../OUT/${base_name}/audio1/audio1_%06d.ts ../OUT/${base_name}/audio1/audio1.m3u8
по удобной причине я запускаю отдельную команду ffmpeg для каждого разрешения в зависимости от качества видеоисточника
Затем я создаю стандартный мастер-плейлист
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=230000,RESOLUTION=320x180,CODECS="avc1.42001e"
180p/180p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=600000,RESOLUTION=640x360,CODECS="avc1.42e00a"
360p/360p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=3150000,RESOLUTION=1280x720,CODECS="avc1.4d0028"
720p/720p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=5000000,RESOLUTION=1920x1080,CODECS="avc1.4d0029"
1080p/1080p.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=128000,CODECS="mp4a.40.2"
audio1/audio1.m3u8
Когда я пытаюсь прочитать мастер-плейлист,У меня нет звука При использовании VLC аудиодорожка воспроизводится до видеодорожек
Итак, как я могу синхронизировать аудиодорожку с видеодорожками?
Спасибо