蒐集了不少4K的原檔,但是機上盒播不了,所以有轉檔的需求
ffmpeg -i input.mp4 -vf “scale=’min(1920,iw)’:-2” -c:v libx265 -crf 28 -c:a copy -c:s mov_text -vf subtitles=subtitles.srt output.mp4
可是怎麼也執行不起來,因為字幕,我是用有特效的.ass格式,輸入檔也不是mp4格式,而是MKV格式
給出的指令是
ffmpeg -i input.mp4 -vf “scale=’min(1920,iw)’:-2” -c:v libx265 -crf 28 -c:a copy -c:s mov_text -vf subtitles=subtitles.ass output.mp4
執行時出現錯誤
[sost#0:2/mov_text @ 000001d9858ee2c0] Subtitle encoding currently only possible from text to text or bitmap to bitmap
Error opening output file Inception.2010.mp4.
Error opening output files: Invalid argument
ChatGPT 給出2種解法,我用方法1,不用方法2,方法2字幕要轉檔。
該錯誤是由於 mov_text 字幕格式無法從 .ass 字幕文件轉換而引起的。mov_text 只支持基於文本的字幕(如 .srt)或基於圖片的字幕,而 .ass 字幕是一種豐富格式的字幕,無法直接轉換為 mov_text。
要解決這個問題,你有兩個選擇:
1. 將 .ass 字幕燒入到影片中(硬字幕)
這種方式會將字幕直接嵌入到影片畫面中,字幕無法被關閉。你可以繼續使用 ass 文件,這樣可以保留 .ass 的豐富格式(如字體、樣式等)。
修改命令如下:
ffmpeg -i input.mkv -vf “scale=’min(1920,iw)’:-2,subtitles=’input.ass'” -c:v libx265 -crf 28 -c:a copy output.mp4
這樣 ffmpeg 會將 .ass 字幕燒入影片,並同時進行影片轉碼。
2. 將 .ass 轉換為 .srt 字幕(軟字幕)
如果你想保留軟字幕(可以打開或關閉),並且你的目標是 mov_text,你需要先將 .ass 字幕轉換為 .srt 格式。
你可以使用以下工具將 .ass 字幕轉換為 .srt 字幕:
使用字幕編輯工具如 Aegisub。
使用 ffmpeg 自身(需要配合其他軟體如 ffsubsync)來處理。
轉換後,使用以下命令進行轉碼:
指令
ffmpeg -i input.mkv -vf “scale=’min(1920,iw)’:-2” -c:v libx265 -crf 28 -c:a copy -c:s mov_text -vf “subtitles=’input.srt'” output.mp4
這樣,你可以保留可關閉的 .srt 字幕。
隨機文章
- 爛東西 Acer Aspire T650主機 (2009-06-18)
- 又是一堆明顯低於市價的例子 (2009-12-02)
- 紐西蘭航空-空姐空少全祼上陣介紹機上安全措施-拍飛安簡介片 紐航空服員脫光上陣吸睛 (2009-07-03)
- 免費的Gmail帶來潛在的危機 (2009-12-29)
- 微軟Surface放了很多資源進去 但是個人感受不好 (2020-12-25)