[請問] 如何將多個jpg檔輸出成mp4影片檔

作者: visual (米干)   2021-09-25 01:06:57
我目前參考了以下文章的寫法 (第二段的部分)
https://www.twblogs.net/a/5ee4c651b5c757c9e6c991b6
每一個avcodec相關的function都可以成功執行,
在while迴圈push jpg buffer也沒有跳出error (目前讀了100張jpg檔
用VLC player播放都只播了不到一秒就沒了
(win10內建的播放器會顯示"此項目的編碼格式是不支援的格式"
有試著改st->codec->time_base.num和st->codec->time_base.den的數字
影片長度會有改變,但還是播不到一秒影片就結束了
想請問是還有哪些參數沒設定到嗎?或是要把jpg檔合成影片檔還有什麼其他作法嗎?謝謝
作者: cs8425 (cs)   2021-09-25 01:19:00
google關鍵字: ffmpeg image to video之前都是這樣弄的 直接下指令參數就好 不用call api
作者: YouCantGetME (高級攻城師)   2021-09-25 01:51:00
https://video.stackexchange.com/a/13074 樓上說的前面的FPS是呈現速率的重點 後面可以依素材類型調慢比如1秒1張 如果撥放器能吃就只會設1 FPS 省空間設高剩下都是dupe偵 盡量-pix_fmt yuv420p提高相容win內建撥放器不吃圖片的444取樣 只吃420
作者: visual (米干)   2021-09-25 11:57:00
謝謝回覆~所以基本上還是讀實際的圖檔去生成影片檔的作法比較方便嗎?
作者: falcon (falken)   2021-09-25 14:54:00
注意 -framerate 和 -r 是同一個選項,重點是順序你要指定輸入或輸出fps 是根據選項的位置ffmpeg -r in_fps -i INPUT -r out_fps OUTPUTin_fps 就是 1/每張圖片秒數 out_fps 則是輸出fps
作者: cs8425 (cs)   2021-09-25 15:00:00
不是有一堆圖檔要組成影片才問嗎? 如果是程式直接產生畫面又不想存到硬碟後再轉 我記得有個參數是直接讀stdin的
作者: visual (米干)   2021-09-25 17:16:00
To cs8452: 抱歉,沒有描述清楚,之後圖片的資料會是直接抓程式裡面的buffer,目前是我在測試生成影片檔的功能,才會先用圖片檔
作者: cs8425 (cs)   2021-09-26 15:24:00
參考: https://stackoverflow.com/questions/51903888/雖然用pipe效率稍微低一點 但至少比call api簡單方便 而且絕大多數情況不會遇到效率問題有raw跟image2pipe 後面那個你要先編成圖檔再透過pipe傳raw的話參數要指定好 長寬 rgba這類的參數
作者: visual (米干)   2021-09-27 21:58:00
謝謝樓上,我再研究看看

Links booklink

Contact Us: admin [ a t ] ucptt.com