2016-04-29 4 views
0

Я знаю, что это возможно, чтобы получить часть файла с помощью команды: FFmpeg -ss 00: 02: 00.000 -i input.mp4" -t 00: 00: 05,000 out.mp4Можно ли создать «временную шкалу» с помощью FFMPEG?

Но возможно ? объединить несколько видео с текстом и другими эффектами Я хочу, чтобы создать выход из следующих

File1.mp4: Читайте от 00: 02: 00,000 в 00: 02: 05,000

File2.mp4 Читайте с 00: 00: 00.000 до 00: 01: 30.000 Вставить наложение изображения «logo.png» на 20 секунд

File3.mp4 Вставьте весь файл Вставить текст из 00: 00: 10,000 до 00: 00: 30,000

ответ

1

Это может быть сделано с помощью FFmpeg, но это на самом деле не «редактор» так команда будет длинной, громоздкой и подверженной ошибкам выполнения, тем больше количество входящих клипов и эффектов, которые вы применяете.

При этом один из способов сделать это - использовать фильтр concat.

ffmpeg -i file1.mp4 -i file2.mp4 -i file3.mp4 -loop 1 -t 20 -i logo.png \ 
-filter_complex "[0:v]trim=120:125,setpts=PTS-STARTPTS[v1]; 
     [1:v]trim=duration=90,setpts=PTS-STARTPTS[vt2]; 
     [vt2][3:v]overlay=eof_action=pass[v2]; 
     [2:v]drawtext=enable='between(t,10,30)':fontfile=font.ttf:text='Hello World'[v3]; 
     [0:a]atrim=120:125,asetpts=PTS-STARTPTS[a1]; 
     [1:a]trim=duration=90,setpts=PTS-STARTPTS[a2]; 
    [v1][a1][v2][a2][v3][2:a]concat=n=3:v=1:a=1[v][a]" -map "[v]" -map "[a]" output.mp4 

Я не указал каких-либо параметров кодирования, таких как кодек или битрейт ..etc. Предполагая, что вы знакомы с ними. Кроме того, не указаны аргументы для overlay или drawtext как position..etc. Обратитесь к документации для руководства по этим вопросам.

+0

Спасибо за ответ, это было немного сложнее, чем я боялся - я работал только с ffmpeg на короткое время, поэтому я не понимаю половину входных параметров – mosaic

Смежные вопросы