Я пытаюсь использовать ffmpeg
для выполнения следующих действий:
- получить потоковый ввод [OK]
- сохранить на диск видео как есть [TODO]
- применить фильтр, т. Е. Drawtext [OK]
- сохранить на диск наложенное видео [OK]
- просмотреть наложенное видео [OK]
Вот моя текущая командная строка:
ffmpeg -rtsp_transport tcp -i <path-to-stream> -vf "[in]drawtext=textfile='text.txt': reload=1: font=arial: fontcolor=red: fontsize=80: box=1: boxcolor=yellow@0.5: boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2[out]" -vcodec libx264 -f tee -map 0:v "[f=mp4]test.mp4|[f=nut]pipe:" | ffplay pipe:
Единственное, что я не понимаю, как это сделать, - это запись видео до drawtext
.Я думаю, мне нужно создать еще один tee
:
INPUT ---> TEE ---->RECORD
|
|-->FILTERS---> TEE ---->RECORD
|
|-->PLAY
Поэтому я попытался с помощью этой громоздкой команды:
ffmpeg -rtsp_transport tcp -i <path-to-stream> -vcodec libx264 -f tee -map 0:v "[f=mp4]before.mp4|[f=nut]pipe:" | ffmpeg -f mp4 -i pipe: -vf "[in]drawtext=textfile='text.txt': reload=1: font=arial: fontcolor=red: fontsize=80: box=1: boxcolor=yellow@0.5: boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2[out]" -vcodec libx264 -f tee -map 0:v "[f=mp4]after.mp4|[f=nut]pipe:" | ffplay pipe:
Она не выдает ошибки, записи "before.mp4"но ни "after.mp4", ни предварительный просмотр не работают.Конечно, я забыл что-то в синтаксисе.