2017-05-07 36 views
0

我想添加一個字幕到一個短視頻剪輯,但我的字幕是在一個變量,而不是在一個文件中。ffmpeg從變量添加字幕而不是文件

有沒有辦法做到這一點?喜歡的東西:

ffmpeg -i input.mp4 -vf "subtitles='$title':force_style='Fontsize=24,PrimaryColour=&H0000ff&'" -c:a copy output.mp4 

(這是不工作的過程作爲ffmpeg的請求文件)

我也試着改用DrawText的,但我的字幕需要進行包裝。

+0

你有[期望](https://en.wikipedia.org/wiki/Expect)嗎? – dawg

+0

@dawg不,但我可以安裝它。我正在運行Ubuntu – Sulli

回答

0

我沒有嘗試這一點,但這樣的事情應該工作:

subtitle="subtitles='$title':force_style='Fontsize=24,PrimaryColour=&H0000ff&'" 
ffmpeg -i input.mp4 -vf <<<"$subtitle" -c:a copy output.mp4 

其中變量被送入命令作爲此處的字符串。我不是100%的語法,但我會在稍後測試。

0

通常,您可以在Bash中創建<()文件的效果。

例如,cat只需要文件輸入。你可以得到一個變量,像一個文件,像這樣:

$ var="this is a var" 
$ cat <(echo "$var") 
this is a var 

我沒有ffmpeg安裝測試做,但如果參數需要一個文件,你有一個字符串,你可以試試。

你也可以重定向將一個字符串的文件,然後使用:

$ echo "$var" > /tmp/file 
$ cat /tmp/file 
this is a var 

如果ffmpeg的提示您輸入一個文件名,你可以嘗試使用expect