Загрузка SCTE не работает с ffmpeg.

Вопрос или проблема

У меня есть .ts файл, который я хочу отправить в транскодер для потоковой передачи в реальном времени. В нем содержатся видео, аудио и SCTE потоки данных. Когда я загружаю его в транскодер как srt поток, SCTE не передается. Команда:

ffmpeg -i input.ts -map 0:v:0 -codec:v copy -streamid 0:0x1e1 -map 0:a:0 -codec:a copy -streamid 1:0x1e2 -map 0:d:0 codec:d:0 -streamid 2:0x1f4 -tag:d:0 31 -f mpegts "srt://address:2088"

Передача данных происходит некоторое время, затем выдается ошибка:

Stream 2, codec scte_35, is mixed as a private data stream and may not be recognized upon reading

Я не уверен, правильна ли эта команда. Я нашел её при поиске в Google. Может кто-нибудь помочь

Ответ или решение

Если у вас возникли проблемы с SCTE-интеграцией при использовании FFmpeg для трансляции .ts-файла, который содержит видео, аудиопотоки и данные SCTE, и при этом SCTE данные не передаются корректно через SRT, то вероятно, проблема связана с конфигурацией FFmpeg. Давайте разберем эту проблему подробнее и рассмотрим возможные решения.

Проблема

Вы используете команду FFmpeg для потоковой передачи видео и аудио через SRT, но сталкиваетесь с ошибкой, которая указывает, что поток с кодеком SCTE-35 смешан как поток частных данных, и он может не быть распознан при чтении. Это значит, что FFmpeg не может правильно обработать данные SCTE-35, и они не транслируются вместе с видео и аудио.

Разбор команды FFmpeg

Вашей командой является:

ffmpeg -i input.ts -map 0:v:0 -codec:v copy -streamid 0:0x1e1 -map 0:a:0 -codec:a copy -streamid 1:0x1e2 -map 0:d:0 codec:d:0 -streamid 2:0x1f4 -tag:d:0 31 -f mpegts "srt://address:2088"

Возможные проблемы и решения

  1. Потоковые идентификаторы (stream ids):
    Параметр -streamid задает идентификаторы потоков для видео, аудио и данных. Убедитесь, что они правильно соответствуют спецификации вашего содержимого.

  2. Обработка SCTE-35 данных:
    Кодек scte_35 обычно обрабатывается как поток частных данных, что может потребовать специального тега для корректной интерпретации данных в медиаконтейнере MPEG-TS. Проверьте, что используются правильные теги и конфигурация.

  3. Параметры FFmpeg для SCTE-35:
    Убедитесь, что вы используете правильные теги для обработки SCTE-35. Параметр -tag:d:0 31 указывает, что данные обрабатываются как частные, но это может не быть допустимым для данного случая использования. Попробуйте удалить или изменить этот параметр.

  4. Обновление и конфигурация FFmpeg:
    Проверьте, что ваша версия FFmpeg обновлена и поддерживает SCTE-35, так как более старые версии могут не иметь полной поддержки. Если проблема сохраняется, попробуйте другую версию или проверьте документацию для более специфических ключей конфигурации.

  5. Логирование и отладка:
    Используйте опцию -loglevel debug у FFmpeg для получения более подробной информации о процессе и потенциальных ошибках. Это поможет вам определить, где именно возникает ошибка.

Заключение

Правильная конфигурация FFmpeg и тщательная проверка параметров трансляции помогут вам правильно инкапсулировать и передать SCTE-35 данные. Проверьте каждую составляющую вашей команды, уточните документацию FFmpeg и применяйте инструмент для отладки, чтобы выявить и решить проблемы. В случае продолжения трудностей, можно обратиться к сообществам по FFmpeg для более специфической помощи с их поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...