Eu preciso gravar um fluxo RTSP, antes de armazená-lo eu preciso desenhar algum texto no vídeo.
E o comando abaixo funciona bem apenas para gravação de fluxo (sem gravação de texto).
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"
Mas também preciso desenhar algum texto no vídeo antes de gravar. Então eu reescrevo o comando acima como
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"
Mas dando o erro como,
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.
Eu entendo que tanto a gravação quanto o desenho não podem ser executados juntos. Qualquer método existe semelhante, para resolver o problema acima?
Respostas:
Filtragem requer recodificação , então você não pode cópia de fluxo e filtrar o mesmo fluxo.
Remover
-codec copy
ou evite a filtragem. Você ainda pode transmitir o áudio com-c:a copy
já que não está sendo filtrado:fonte