Склейка flv консольно?

Добрый вечер.


Кто-нибудь сталкивался с удачным решением проблемы склейки flv в консоли? Безотказным и чтобы всегда работало? Итак, исходные данные.


Задача — отредактировать flv-файл путем вырезания из него кусков. Куски могут быть в начале, конце и середине. Вопрос наложения кусков не обсуждается (т.е. там проблем нет). Идет просчет, какие куски файла оставить, затем ffmpeg-ом выпиливаются нужные куски. Далее надо их склеить в один результирующий. Ffmpeg этого делать не умеет (а вдруг, у кого получилось?)


Варианты решения.

1. mencoder. Плох тем, что результат получается непредсказуемым — куски из середины могут проходить в ускоренном виде. Точно баг не поймал, но похоже, что если они достаточно короткие (до 5-10 секунд), то такое происходит. Первый кусок всегда нормально. Кроме того, mencoder не понимает для склейки кодек nellymoser. Приходится перекодировать в adpcm_swf.

2. Перегон кусков в контейнер avi, а далее простая склейка (cat) в один файл, перегон обратно в flv. Там постоянный баг — у первого куска видео в самом конце застывает на секунду-другую (такое впечатление, что видеодорожка короче, чем аудио, потому она ждет). Может быть, имеются какие-то другие способы консольно склеить avi?


Далее способов пока нет. Могу указать параметры склейки/резки, если нужны. Если еще что-то забыл сказать, спрашивайте.
  • Вопрос задан
  • 3973 просмотра
Решения вопроса 1
@xdenser
надо не AVI склеивать cat-ом, а MPEG2 TS
у FFmpeg на сайте есть пример такой склейки
тогда все нормально должно быть

можно еще через пайпы клеить тогда получится без промежуточных файлов
т.е. делаем два пайпа и указываем их в качестве источника несжатого звука и несжатого видео
для первой команды — форматы данных надо указывать явно — размер кадра, цветовой формат, частоту кадров, для звука аналогично
потом другими двумя командами декодируем видео и звук из первого файла в соответствующие пайпы форматы вывода должны совпадать
когда оно съест первый кусок
второй файл сливаем точно также в эти же пайпы
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
frol
@frol
Линуксоид
Решал подобную задачу — нужно было склеивать mp4. В итоге я перегонял всё в mpg, слеивал вот так:
mencoder -oac copy -ovc copy file1.mpg file2.mpg file3.mpg -o file.mpg
и дальше снова перекодировал в mp4. Была проблема в том, что у меня были разные видео-файлы, которые имели разные битрейды и получались аномалии с быстрым/медленным звуком.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы