2015-09-24 3 views
1

Я пытаюсь записать (hardcode) файл SRT и значение временного кода в файл MP4, но безрезультатно.Как записать файл субтитров (SRT) и Timecode в FFMpeg

я в настоящее время горения SRT и таймкод с помощью следующих команд:

Ожог SRT

ffmpeg -i input.mp4 -vf subtitles=subs.srt out.mp4 

Ожог Timecode

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 вместе.

Есть ли обходной путь?

ответ

0

Вы можете объединить фильтры в серии. Это создает filterchain. Серия подключенных фильтрующих цепей является фильтром.

ffmpeg -i input.mp4 -vf "drawtext,subtitles" -c:a copy output.mp4 
  • -vf используется для simple (video) filtergraphs, который состоит один вход и один выход.

  • -filter_complex используется для complex filtergraphs, который состоит из одного или нескольких входов и/или одного или нескольких выходов. Однако я не думаю, что использование -filter_complex для простых фильтров приведет к возникновению любых проблем.

  • Поскольку ваш вход и выход являются MP4, я добавил -c:a copy в stream copy любой звук, так как вам, вероятно, не нужно или его нужно повторно закодировать.

  • Для потенциально большей точности используйте rate=ntsc или rate=30000/1001 вместо rate=29.97.

0

только для тех, кто сталкивается с этим qs. Вы можете сделать это с .srt-файлом так же, как я делаю это для файла .ass, единственное отличие - файлы .ass дают нам больше контроля над цветом шрифта и прочими вещами. Я не могу найти .srt один, поэтому я поделюсь .ass, который работает для меня, я использую выход hs, но вы можете снова использовать 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