Come posso generare un video da un file txt e un'immagine?


0

Diciamo che ho:

  • Un file txt
  • Un'immagine 1920x1080

Vorrei generare un video come questo in cui il testo scorre e l'audio è un dato MP3.

Stavo scavando un po 'con ffmpeg ma senza successo.

Puoi aiutare?

Risposte:


2

Ho provato la mia lettura preferita (3 paragrafi, avvolto in 80 caratteri) :-)

lorem-ipsum-generator -l -p 3 -s 1 | fold -w 80 -s > TEXT

Quindi genera il video:

ffmpeg -loop 1 \
       -i Blue-Planet-Earth-1920x1080.jpg  
       -vf drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:textfile=TEXT:y=h-200*t"  
       -t 8 output.mp4

Spiegazioni :

  • ciclo infinito in quanto abbiamo una sola immagine (supporto di più immagini in sequenza o convogliate)
  • l' immagine
  • il testo è abbastanza leggibile, l'animazione è fatta con l'uso di t
  • "-t 8" per una durata di 8 secondi (alla fine)

Il testo supera il limite superiore e continua a scorrere verso l'alto.

Chiunque può ora generarlo.

(Grazie a FB!)


Cosa significa FB?
Llogan,

FB è uno scorcio di Fabrice (bellard.org)
levif

1

È possibile utilizzare il filtro dei sottotitoli con i sottotitoli Advanced SubStation Alpha (ASS). Utilizzando il /movetag vi permetterà di scorrere i sottotitoli, fornendo iniziali e finali x, yle coordinate.

I vantaggi rispetto al filtro drawtext includono più opzioni di formattazione e la possibilità di avvolgere automaticamente il testo. Lo svantaggio è che la x, yle coordinate non sembrano essere in grado di fare riferimento alla larghezza del testo e l'altezza, quindi bisogna fornire manualmente i valori appropriati nel /movetag.

inserisci qui la descrizione dell'immagine
Schermata dei sottotitoli scorrevoli

Esempio di file ASS creato con Aegisub :

[Script Info]
; Script generated by Aegisub 3.2.2
; http://www.aegisub.org/
Title: Default Aegisub file
ScriptType: v4.00+
WrapStyle: 0
ScaledBorderAndShadow: yes
YCbCr Matrix: None

[Aegisub Project Garbage]
Last Style Storage: Default

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,0,0,100,100,0,0,1,1,1,5,10,10,10,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:05.00,Default,,0,0,0,,{\move(190,350,180,-90)}Draw subtitles on top of input video using the libass library.\NTo enable compilation of this filter you need to configure FFmpeg wit{\i1}h --enable-liba{\i0}ss. This filter also requires a build with libavcodec and libavformat to convert the passed subtitles file to ASS (Advanced Substation Alpha) subtitles format.

Esempio di ffmpegcomando:

ffmpeg -loop 1 -i image.jpg -i audio.mp3 -filter_complex "subtitles=scroll.ass" -c:a copy -shortest output.mkv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.