Wie man eine variable in einen string in der Bash
Ich Schreibe ein Bash-Skript, und ich bin versucht, herauszufinden, einen Weg, um FFmpeg zu erkennen, eine Globale variable in der -force_key_frames
option. Die -force_key_frames
option kann ein regulärer Ausdruck als argument, so dass Funktionen wie zwingen, ein key-frame alle 5 Sekunden:
-force_key_frames 'expr:gte(t,n_forced*5)'
Dies funktioniert gut für zwingen, einen key-frame alle 5 Sekunden, aber ich weiß nicht, wie zu zwingen, ein key-frame alle x Sekunden, wobei x eine Eingabe-variable aus dem user geworden, durch den rest des Skripts. Die genaue FFmpeg-Befehl, den ich versuche, ist:
ffmpeg -i "video.mp4" -vcodec: libx264 -b:v 500k \
-force_key_frames 'expr:gte(t,n_forced*${SEG_TIME})' -s:v 640x480 \
-r 29.97 -pix_fmt yuv420p -map 0 -f segment -segment_time ${SEG_TIME} \
-reset_timestamps 1 -y "output%01d.mp4"
Die variable $SEG_TIME
auf 5 festgelegt ist, durch das Skript, sondern der reguläre Ausdruck in der -force_key_frames
option scheint nicht, wie die $SEG_TIME
variable.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diesem Teil
Ihre einfache Anführungszeichen sind, was die string -
${SEG_TIME}
übergeben werden buchstäblich eher als interpretiert als eine variable, versuchen Sie, diese