Скопируйте PTS из исходного видеопотока в обработанный видеопоток, используя ffmpeg и opencv - PullRequest
0 голосов
/ 25 января 2019

У меня есть два видео файла в формате webm. Во-первых, это оригинальное видео, снятое с помощью Chrome MediaRecorder API. Второе - это обработанное видео, сгенерированное обработкой каждого кадра исходного видео с использованием OpenCV. Как мне переопределить PTS кадров в обработанном видео с PTS из оригинального видео. Количество кадров между ними одинаковое.

Обработанное видео генерируется из последовательности изображений с использованием ffmpeg.

ffmpeg -i frames/frame_%d.png -pix_fmt yuv420p ffmpeg-cfr.mp4

Это приводит к CFR 25fps. Я попытался использовать шаги по ссылке, Могу ли я создать видео VFR из изображений с метками времени? . Это работает только на MP4 видео, а не на WebM. Процесс кодирования в MP4 и преобразования обратно в webm приводит к очень плохому качеству видео и занимает 3 раза для каждого видео.

Наряду с последовательностью изображений я также записываю PTS исходного видео для каждого кадра в файле timecodes.txt. Есть ли какие-либо параметры в ffmpeg, аналогичные mp4fpsmod (https://github.com/nu774/mp4fpsmod)? Я ожидаю, что когда я отправляю блочные метки времени в webm для исходного видео и обработанного видео, PTS для каждого блока совпадает между ними.

...