При передаче mpegts в ffmpeg, который должен преобразовать его в mp4 и pipe в stdout, ffmpeg говорит: «muxer не поддерживает вывод, который нельзя найти».FFMPEG: Transmux mpegts to mp4 дает ошибку: muxer не поддерживает вывод, не подлежащий поиску
После много исследований Я пришел к выводу, что mp4 является плохим выбором для выполнения этих видов транскодирования на лету из-за поиска. Таким образом, по существу: MP4 не может быть передан через ffmpeg, что имеет смысл.
Но у меня нет непрерывного потока mpegts, у меня есть куски 5 секунд. Так что это на самом деле так же, как:
- Вот мой 1 Мб * ts-файл
- Пожалуйста, прочтите его из трубы, пока не упретесь EOF
- Пожалуйста TransMux его в mp4 (если вам действительно нужно искать, хорошо использовать буфер)
- Пожалуйста трубку полного внутреннего буфера mp4 на стандартный вывод
Мне нужны эти mp4 куски для более HTML5 MediaSource, фрагментация не является проблемой, я использую mp4box.js, который работает как шарм ,
Вопросы:
- Может FFmpeg сделать этот вид внутренней буферизации?
- Есть ли лучший вариант для рассмотрения?
В сущности: Могу ли я (каким-то образом) взаимодействовать с ffmpeg без использования файлов? Мои текущие решения работают с файлами и опросом для новых кусков, что является уродливым.
Если вас интересует моя команда ffmpeg, просто дайте мне знать.
Я просто хочу поговорить с ffmpeg прямо как: Вот мой буфер ввода и, пожалуйста, дайте выходной буфер без создания файлов. Поскольку моя программа вызывает ffmpeg как дочерний процесс, я не хочу тратить компьютер на файлы, которые используются только один раз для трансляции. Это действительно проблема интерфейса с ffmpeg. Является ли ffmpeg действительно неспособным буферизовать вывод и отправлять его в куски вместо сегментированной потоковой передачи? Я не хочу полностью перейти на C, чтобы изменить интерфейс ... – Kr0e