А Вы ведь это уже спрашивали в прошлый раз. Единственный существующий способ это резка и склейка. Альтернативный вариант — доработать фильтр FFmpeg, который это делает. Добавить ему параметр продолжительности watermark.
Если более точно, то это фильтр overlay (файл libavfilter/vf_overlay.c), добавить необходимые параметры в структуру OverlayContext, и доработать функцию draw_slice.
Да, спасибо, на новой версии действительно все работает.
Кстати, не знаете как узнать какая именно аудио дорожка является ru? В mencoder есть -alang ru, а тут только номера.
А можно чуть подробнее? Конкретно, сейчас есть примитивный плеер на базе ffmpeg для Колибри, но он умеет просто воспроизводить видео. Хотелось бы добавить в него паузу, перемотку, громкость и многое другое, но как это сделать — я не знаю. Хотелось бы знать хотя бы в общих чертах, куда копать.
Занимаюсь чем-то похожим, только для live трансляций. MPEG-TS / HLS
И тут вдруг возник вопрос:
Если у нас видео без b-frames, то DTS не используется,
если с PTS для видео все понятно, — просто увеличиваем на (1 / fps) * 90000 ) для каждого фрейма,
то как установить PTS для аудио?
Последнее время, для аудио-пакетов я ставил PTS соответствующее ближайшему видео пакету (по-моему это логично для live видео).
И на ТВ / Flash плеере, все работало нормально.
И тут я попробовал такой стрим проиграть на ipad недавно, и слышно что аудио-пакеты наезжают друг на друга, т.е. какая-то часть аудио просто вылетает.
Я так понял нужно парсить AAC, брать длительность пакета, и к следующему PTS добавлять эту длительность?
Как ее определить?
Или есть более простой путь?
P.S. Интерисует лишь алгоритм рассчета PTS для аудио.
Доработка видеоплеера ffmpeg