Проблемы с точностью кадров при применении субкапсул с использованием файлов .ass к видео с частотой 23,976 кадров в секунду.
В настоящее время тестирую субкапсулы .ass в рабочем процессе VFX. Цель состоит в том, чтобы разместить определенный текст на определенных кадрах, а точки входа и выхода должны быть точными до кадра. Мы работаем над проектом 23.976.
В настоящее время у меня нет проблем с использованием FFmpeg для создания фрагментов отдельных кадров с точностью до кадра из экспорта полного шоу путем преобразования hh:mm:ss:ff в секунды и последующей обработки смещения от 24 до 23,976, используя следующий алгоритм:
InPoint_Seconds = ConvertToSeconds(InPoint_Hmsf_FullShow) - ConvertToSeconds(Start_Hmsf_FullShow) // Convert from SMTPE Time Code to seconds.
InPoint_Seconds = InPoint_Seconds * (1001 / 1000) //Handle 24 to 23.976 offset
OutPoint_Seconds = [Same idea as above]
Duration_Seconds = Output_Seconds - InPoint_Seconds
> ffmpeg -ss InPoint_Seconds -t Duration_Seconds -i SourcePath -c copy DestPath
Таким образом, создание копий частей большого файла с точностью до кадра работает с идеальной точностью.
НО при применении той же логики к субкапам с использованием файлов .ass иногда они приземляются с точностью до кадра, а иногда нет (они будут опаздывать максимум на 1 кадр, и это значение не увеличивается на протяжении всего исходного клипа) .
Интересно, есть ли у кого-нибудь идеи.