2013-07-12 17 views
26

Come posso aggiungere una sovrapposizione di testo sul mio video in ffmpeg?Testo sul video ffmpeg

dato un video "video1.flv", come posso aggiungere il testo "StackOverflow" durante l'intero video, posizionato al centro dello schermo, con testo bianco e un bordo?

+0

sguardo [qui] (https://sites.google.com/a/asu.edu/wireless-video-sensor/video/how-to-setup-full-ffmpeg-tools-in-ubuntu) -11-10/comandi-utile-ffmpeg. nr. 6 – bitWorking

+6

@bitWorking - Vedo che il tuo commento ha già 3 anni, ma ti prego comunque di non insultare e perdere tempo con i membri della community di stackoverflow con i tuoi link "lasciami google che per te" offuscati. Soprattutto quando introduci la ricorsione (sono arrivato qui tramite la ricerca su google). Inoltre, l'uso di abbreviazioni URL può nascondere potenziali collegamenti a malware o spam perché non si sa dove sono puntati. – FooF

risposta

60

utilizzare il filtro drawtext video nel ffmpeg:

enter image description here

ffmpeg -i input.mp4 -vf drawtext="fontfile=/path/to/font.ttf: \ 
text='Stack Overflow': fontcolor=white: fontsize=24: box=1: [email protected]: \ 
boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2" -codec:a copy output.mp4 
  • I @0.5 controlla l'opacità della casella di testo. In questo esempio è impostato al 50%. È possibile rimuovere @0.5 e non ci sarà alcuna trasparenza.

  • -codec:a copystream copy (re-mux) audio ed evitare la ricodifica.

  • Un'alternativa al filtro drawtext è l'utilizzo di ASS or SRT subtitles, in particolare se si desidera testo temporizzato o softsub.

  • Se si desidera aggiornare o modificare il testo, vedere le opzioni textfile e reload per questo filtro.

  • Questo filtro richiede che il codice ffmpeg sia compilato con --enable-libfreetype. Se ricevi No such filter: 'drawtext' probabilmente manca --enable-libfreetype. La maggior parte delle build statiche ffmpeg supportano questo, quindi consultare la pagina FFmpeg Download per i collegamenti.

  • Vedere lo drawtext filter documentation per ulteriori opzioni ed esempi.

+0

Grazie. Questo produce testo che è statico. Oltre alle funzioni di data/ora, c'è un modo per produrre una sovrapposizione di testo che cambia (come un nastro ticker nella parte inferiore dello schermo) o l'input da un flusso di testo? –

+1

@NoahTernullo ci sono anche le opzioni strftime e la variabile "pts" che puoi usare. In termini di renderlo ticker lungo il fondo, è possibile probabilmente utilizzare alcune funzioni per le variazioni del valore di x in base a pts o numero di frame. – rogerdpack

+0

Impossibile trovare il formato di output adatto per 'testo =' Stack '. Ottenere questo errore per favore aiutami .. !! –