Мне нужно записать поток RTSP, перед тем, как сохранить его, мне нужно нарисовать текст на видео.

А приведенная ниже команда прекрасно работает только для записи потока (без записи текста).

openRTSP -D 10 -v -t -c -b 800000 rtsp://video_link.mov | ./ffmpeg -r 15 -i - -codec copy -hls_list_size 65535 -hls_time 2 "./video/live.m3u8"

Но мне также нужно нарисовать текст на видео перед записью. Поэтому я переписываю приведенную выше команду, как

openRTSP -D 10 -v -t -c -b 800000 rtsp://video_link.mov | ./ffmpeg -r 15 -i - -vf drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf: text='Some Text': fontcolor=white: fontsize=24: box=1: boxcolor=black: x=(w-text_w)/2: y=(h-text_h-line_h)/2" -codec copy -hls_list_size 65535 -hls_time 2 "./video/live.m3u8"

Но, давая ошибку, как,

input #0, h264, from 'pipe:':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (High), yuv420p, 704x480, 25 fps, 25 tbr, 1200k tbn, 50 tbc
Filtergraph 'drawtext=fontfile=/usr/share/fonts/truetype/freefont/FreeMonoBold.ttf: text='Stack Overflow': fontcolor=white: fontsize=24: box=1: boxcolor=black: x=(w-text_w)/2: y=(h-text_h-line_h)/2' was defined for video output stream 0:0 but codec copy was selected.
Filtering and streamcopy cannot be used together.

Я понимаю, что и запись, и рисование не могут выполняться вместе. Любой метод существует аналогично, чтобы решить вышеупомянутую проблему?

1 ответ1

1

Фильтрация требует перекодирования, поэтому вы не можете копировать и фильтровать один и тот же поток.

Удалите -codec copy или избегайте фильтрации. Вы все еще можете скопировать аудио с помощью -c:a copy так как он не фильтруется:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .