У меня есть огромное количество файлов mp4 для создания сегментов HLS, более 200 часов файлов.Я не вижу смысла перекодировать эти видео, потому что они уже в формате mp4.Я использую следующую команду, которая копирует видео на сегменты, а не кодирует его снова.
ffmpeg -i filename.mp4 -codec: copy -start_number 0 -hls_time 4 -hls_list_size 0 -f hls filename.m3u8
Проблема в том, что, когда дело доходит до сшивания этих сегментов, я получаю микро аудио ошибки между сегментами.Это сложно объяснить, но представьте, что кто-то отключил звук на 0,1 секунды.Я не во всех сегментах, но в 20-30% из них.Могу ли я что-нибудь сделать, чтобы эти ошибки не появлялись, кроме перекодирования всех видео?Нет проблем с видео.
Вот медиа информация из одного из файлов:
General
Полное имя: C: \ video_test \ video_file.mp4
Формат: MPEG-4
Профиль формата: базовый носитель / версия 2
Идентификатор кодека: mp42 (isom / iso2 / avc1 / mp41 / mp42)
Размер файла: 45,7 МиБ
Продолжительность: 7 мин 34s
Режим общей скорости передачи: переменная
Общая скорость передачи: 844 кбит / с
Приложение для записи: Lavf53.32.100
Идентификатор видео: 1
Формат: AVC
Формат / Информация: Расширенный видеокодек
Профиль формата: Высокий @ L4
Настройки формата, CABAC: Да
Настройки формата, RefFrames: 8 кадров
Идентификатор кодека: avc1
Идентификатор кодека /Информация: Расширенное кодирование видео
Длительность: 7 мин 34 с
Скорость передачи: 767 кбит / с
Ширина: 1 280 пикселей
Высота: 720 пикселей
Соотношение сторон экрана: 16: 9
Режим частоты кадров: Постоянный
Частота кадров: 30.000 FPS
Цветовое пространство: YUV
Частотная выборка цветности: 4: 2: 0
Глубина в битах: 8 бит
Тип сканирования: Прогрессивный
Биты / (пиксель * Кадр): 0,028
Размер потока: 41,5 МБ (91%)
Библиотека записи: x264 core 136
Настройки кодирования: cabac= 1 / ref = 8 / deblock = 1: 0: 0 / анализ = 0x3: 0x113 / me = umh / subme = 6 / psy = 0 / mixed_ref = 1 / me_range = 16 / chroma_me = 1 / trellis = 0 / 8x8dct= 1 / cqm = 0 / мертвая зона = 21,11 / fast_pskip = 1 / chroma_qp_offset = 0 / threads = 48 / lookahead_threads = 5 / sliced_threads = 0 / nr = 0 / decimate = 1 / interlaced = 0 / bluray_compat = 0 / constrained_intra= 0 / bframes = 3 / b_pyramid = 2 / b_adapt = 1 / b_bias = 0 / direct = 1 / weightb = 1 / open_gop = 0 / weightp = 0 / keyint = 60 / keyint_min = 30 / scenecut = 0 / intra_refresh = 0/ rc_lookahead = 40 / rc = crf / mbtree = 1 / crf = 20,0 / qcomp = 0,60 / qpmin = 10 / qpmax = 51 / qpstep = 4 / ip_ratio = 1,40 / aq = 1: 1,00
Идентификатор аудио: 2
Формат: AAC
Формат / информация: Расширенный аудиокодек
Профиль формата: LC
Идентификатор кодека: 40
Продолжительность: 7 мин 34 с
Режим скорости передачи: переменный
битрейт: 72,0 кбит / с
Максимальная битовая скорость: 96,0 кбит / с
Канал (ы): 2 канала
Позиции канала: Фронт: LR
Частота дискретизации: 44,1 кГц
Частота кадров: 43,066 FPS (1024 SPF)
Режим сжатия: Lossy
Размер потока: 3,92 МБ (9%)
Язык: английский
По умолчанию: Да
Альтернативная группа: 1
Редактировать: я только что попытался скопировать видео и перекодировать аудио с помощью следующей команды, но проблема все еще сохраняется.
ffmpeg -i filename.mp4 -vcodec copy -c:a aac -ar 48000 -b:a 128k -start_number 0 -hls_time 4 -hls_list_size 0 -f hls filename.m3u8