Практичні поради

Як перетворити M3U8 на MP4: FFmpeg, VLC та помилки

Збережіть файл чи URL M3U8 у MP4: копіювання потоків, H.264/AAC, VLC, перевірка доступу та відсутнього звуку.

Оновлено

M3U8 — список відтворення, а MP4 — контейнер для відео й аудіо.

Редактор не відкриває M3U8 навіть після перейменування на MP4? Спочатку перевірте доступність сегментів. Тут ідеться про завершене джерело HLS, яким ви володієте або яке маєте право зберігати.

Відрізняйте список від медіасегментів

M3U8 зазвичай є текстовим списком сегментів HLS, а не відео. Він може вказувати на іншу якість або окремий звук. Перейменування на .mp4 не створює медіаданих.

Список і його ресурси мають бути доступні. Локально потрібні .ts, .m4s і файли ініціалізації. Зберігайте структуру відносних шляхів. Тут використовується завершене джерело, а не запис поточного ефіру.

Спочатку спробуйте копіювання потоків FFmpeg

Спершу виконайте ffmpeg -version у новому терміналі. Якщо команду не знайдено, перевірте встановлення та шлях до програми. Приклад вибирає перше відео й перше аудіо, не обов’язково найкращу якість або потрібну мову. Відео без аудіо дасть MP4 без звуку. Для списків лише з аудіо потрібна інша команда; субтитри та решта доріжок не включені.

-c copy змінює контейнер без перекодування, уникаючи ще одного покоління кодування. Не відновлює сегменти й не змінює несумісні з MP4 кодеки. Використовуйте дозволений шлях чи URL, залишаючи пробіли й параметри в лапках. +faststart переносить метадані MP4 на початок для зручного старту відтворення. Швидкість завантаження мережею він не збільшує.

  1. Відкрийте термінал у папці для результату. Для локального списку підготуйте копію із сегментами, зберігши початкову структуру папок.
  2. Підставте справжній шлях або URL списку та нову назву результату.
  3. Запустіть копіювання, перевірте помилки й відтворення.
Збереження MP4 без перекодування
ffmpeg -i "input.m3u8" -map 0:v:0 -map "0:a:0?" -c copy -movflags +faststart "output.mp4"

Перекодуйте для сумісності або скористайтеся VLC

Якщо пристрій не відтворює копію, спробуйте H.264 та AAC. Команді потрібні libx264 й AAC у FFmpeg. Перекодування потребує часу та може змінити якість і розмір; залиште оригінал. Це приклад для звичайного SDR; тональне відображення HDR у SDR потребує окремих налаштувань.

Перекодування для сумісності: H.264 та AAC
ffmpeg -i "input.m3u8" -map 0:v:0 -map "0:a:0?" -c:v libx264 -crf 20 -preset medium -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart "output-compatible.mp4"

У Windows VLC зазвичай проходить через Media → Convert/Save, вхід Network, профіль і ціль. Профіль може називатися H.264 + MP3 (MP4); AAC і назви залежать від версії. Меню macOS відрізняється.

  1. Знайдіть Media → Convert/Save і вкладку Network.
  2. Введіть M3U8 URL й виберіть Convert.
  3. Перевірте профіль MP4 та новий файл .mp4.
  4. Натисніть Start і відкрийте результат; за відмінностей читайте довідку своєї версії.

Окремо перевірте 403, 404 та відсутність звуку

Для 403 перевірте права й строк адреси, для 404 — змінений або видалений ресурс. Якщо не читається сегмент, перевірте шлях та ініціалізацію. Перенесення папок також ламає посилання. Перекодування не замінить відсутні дані.

Без звуку перевірте аудіопотік, окремий список і вибрану доріжку. Перша не обов’язково потрібною мовою. Використовуйте чинні дозволені джерела або офіційне завантаження. Для DRM та обмежень оберіть підтримуваний сервісом запис.

Перевірте мобільні варіанти й готовий файл

На телефоні спершу шукайте офіційне завантаження або офлайн-функцію. Перевірте потребу онлайн-конвертера в сегментах та передавання файлів чи URL на сервер. Прочитайте умови обробки перед наданням приватного відео чи авторизованого посилання.

Програйте початок, середину й кінець зі звуком та порівняйте тривалість. Живий список без позначки кінця може не завершитися сам і не поверне видалені старі сегменти. Краще завершений VOD. Демонстрація використовує наш короткий завершений HLS-приклад.

Перевірка результату: потоки й тривалість Замініть output.mp4 назвою фактично збереженого файлу. Приклад перекодування створює output-compatible.mp4.
ffprobe -v error -show_entries format=duration:stream=codec_type,codec_name,width,height -of json "output.mp4"
Цей MP4 збережено з нашого короткого HLS-прикладу. Перевірте тривалість і звук відтворенням.

Порівняйте тривалість і програйте початок, середину та кінець зі звуком. Передавайте перевірений MP4, зберігаючи список і сегменти до завершення перевірки.

Інструменти

Джерела

На підставі публічної документації; не повний функціональний або аудит безпеки.

Усі посібники →