Интервалы поиска зависят от того, как часто транспортный поток отправляет информацию о синхронизации. Это действительно зависит от того, как он был создан - MPEG TS позволяет индивидуально установить этот интервал, и в вашем случае он, вероятно, просто отсутствует. Я не уверен, достаточно ли легко исправить существующий файл TS, поэтому я предпочел бы преобразовать транспортный поток в более ориентированный на пользователя контейнер, такой как:
Обратите внимание, что AVI не вариант, так как его поддержка h.264 ... ну, не очень.
Ваш первый вариант - попытаться скопировать необработанные битовые потоки аудио и видео. С FFmpeg это так просто, как:
ffmpeg -i input.ts -c:v copy -c:a libfaac out.mp4
Вы можете установить FFmpeg в Windows, загрузив сборку, в OS X через Homebrew с brew install ffmpeg
, а в Linux - путем компиляции из исходного кода.
Если вы хотите уменьшить размер видео, вы можете попытаться установить коэффициент постоянной скорости (что-то вроде "постоянного качества") и перекодировать его, используя x264, самый популярный кодер h.264:
ffmpeg -i input.ts -c:v libx264 -crf 24 -c:a libfaac out.mp4
Установите CRF на значение от 19 до 25 или даже больше. Чем больше, тем хуже качество, но меньше размер файла.