Комментарии 12
Подскажите, пожалуйста, как наложить png watermark только на первые 30 секунд видео при помощи libavfilter, без резки и склейки?
А Вы ведь это уже спрашивали в прошлый раз. Единственный существующий способ это резка и склейка. Альтернативный вариант — доработать фильтр FFmpeg, который это делает. Добавить ему параметр продолжительности watermark.
Если более точно, то это фильтр overlay (файл libavfilter/vf_overlay.c), добавить необходимые параметры в структуру OverlayContext, и доработать функцию draw_slice.
Так никто и не ответил…
Вот так накладывается прозрачно на все видео
ffmpeg -loop_input -f image2 -i w.png -vframes 901 -vcodec png logo.mov
ffmpeg -i v.mp4 -acodec copy -vf «movie=logo.mov [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]» nv.mp4
Вот так накладывается а через миниту пропадает, но нет прозрачности! Остается черный прямоугольник.
ffmpeg -loop_input -f image2 -i w.png -vframes 901 -vf «fade=out:870:30:alpha=1» -vcodec png logo.mov
ffmpeg -i v.mp4 -acodec copy -vf «movie=logo.mov [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]» nv.mp4
Не могу понять это бага ффмпег или чяднт
Вот так накладывается прозрачно на все видео
ffmpeg -loop_input -f image2 -i w.png -vframes 901 -vcodec png logo.mov
ffmpeg -i v.mp4 -acodec copy -vf «movie=logo.mov [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]» nv.mp4
Вот так накладывается а через миниту пропадает, но нет прозрачности! Остается черный прямоугольник.
ffmpeg -loop_input -f image2 -i w.png -vframes 901 -vf «fade=out:870:30:alpha=1» -vcodec png logo.mov
ffmpeg -i v.mp4 -acodec copy -vf «movie=logo.mov [logo]; [in][logo] overlay=10:main_h-overlay_h-10 [out]» nv.mp4
Не могу понять это бага ффмпег или чяднт
Второй вариант работает! Вероятно у Вас старая версия ffmpeg.
Альфа-канал в фильтре fade был добавлен 9 ноября 2011 года. Попробуйте обновиться.
Альфа-канал в фильтре fade был добавлен 9 ноября 2011 года. Попробуйте обновиться.
ffmpeg-0.7.11_4 это самая новая в портах фрибсд, не работает.
Но спасибо за подтверждение правильности действий
Но спасибо за подтверждение правильности действий
Ой, расскажите лучше про перемотку, субтитры и всё прочее. Ведь замечательный плеер для embedded может получиться!
Перемотка — один вызов av_seek_frame
Занимаюсь чем-то похожим, только для live трансляций. MPEG-TS / HLS
И тут вдруг возник вопрос:
Если у нас видео без b-frames, то DTS не используется,
если с PTS для видео все понятно, — просто увеличиваем на (1 / fps) * 90000 ) для каждого фрейма,
то как установить PTS для аудио?
Последнее время, для аудио-пакетов я ставил PTS соответствующее ближайшему видео пакету (по-моему это логично для live видео).
И на ТВ / Flash плеере, все работало нормально.
И тут я попробовал такой стрим проиграть на ipad недавно, и слышно что аудио-пакеты наезжают друг на друга, т.е. какая-то часть аудио просто вылетает.
Я так понял нужно парсить AAC, брать длительность пакета, и к следующему PTS добавлять эту длительность?
Как ее определить?
Или есть более простой путь?
P.S. Интерисует лишь алгоритм рассчета PTS для аудио.
И тут вдруг возник вопрос:
Если у нас видео без b-frames, то DTS не используется,
если с PTS для видео все понятно, — просто увеличиваем на (1 / fps) * 90000 ) для каждого фрейма,
то как установить PTS для аудио?
Последнее время, для аудио-пакетов я ставил PTS соответствующее ближайшему видео пакету (по-моему это логично для live видео).
И на ТВ / Flash плеере, все работало нормально.
И тут я попробовал такой стрим проиграть на ipad недавно, и слышно что аудио-пакеты наезжают друг на друга, т.е. какая-то часть аудио просто вылетает.
Я так понял нужно парсить AAC, брать длительность пакета, и к следующему PTS добавлять эту длительность?
Как ее определить?
Или есть более простой путь?
P.S. Интерисует лишь алгоритм рассчета PTS для аудио.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Доработка видеоплеера ffmpeg