Как записать файл субтитров (SRT) и тайм-код в FFMpeg
Я пытаюсь записать (жесткий код) файл SRT и значение временного кода в файл MP4, но безрезультатно.
В настоящее время я записываю srt и таймкод, используя следующие команды:
Burn SRT
ffmpeg -i input.mp4 -vf subtitles=subs.srt out.mp4
Тайм-код записи
ffmpeg -i input.mp4 -filter_complex "drawtext=fontfile=/Windows/Fonts/arial.ttf:x=320:y=main_h-50:fontsize=32:fontcolor='white':timecode='00\:00\:00\:00':rate=29.97" -y output.mp4
Однако я не могу объединить их в одну команду, так как ffmpeg не позволяет использовать вместе -vf и -filter_complex.
Есть ли обходной путь?
2 ответа
Просто для тех, кто сталкивается с этой QS. Вы можете сделать это с файлом.srt так же, как я делаю это с файлом.ass, с той лишь разницей, что файлы.ass дают нам больше контроля над цветом шрифта и другими вещами. Я не могу найти.srt, поэтому поделюсь.ass, который мне подходит, я использую вывод hls, но вы снова можете использовать mp4:
ffmpeg -i INPUT_VIDEO_FILE.mp4 -profile:v baseline -level 4.0 -vf "scale=-2:360,subtitles='dynamic_subtitle.ass':force_style='FontName=Aaargh/Aaargh.ttf,PrimaryColour=&H664c4c4c" -start_number 0 -hls_time 10 -hls_list_size 0 -f hls /s3_temp/video_360.m3u8
Вы можете связать вместе фильтры в серии. Это создает цепочку фильтров. Серия связанных цепочек фильтров представляет собой фильтр-граф.
ffmpeg -i input.mp4 -vf "drawtext,subtitles" -c:a copy output.mp4
-vf
используется для простых (видео) фильтров, которые состоят из одного входа и одного выхода.-filter_complex
используется для сложных фильтровографов, которые состоят из одного или нескольких входов и / или одного или нескольких выходов. Тем не менее, я не думаю, что с помощью-filter_complex
для простых фильтровографов возникнут какие-либо проблемы.Поскольку ваш вход и выход MP4, я добавил
-c:a copy
Потоковое копирование любого аудио, так как вы, вероятно, не нуждаетесь или не хотите перекодировать его.Для большей точности рассмотрите возможность использования
rate=ntsc
или жеrate=30000/1001
вместоrate=29.97
,