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