看板 AVEncode 關於我們 聯絡資訊
我目前參考了以下文章的寫法 (第二段的部分) 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檔合成影片檔還有什麼其他作法嗎?謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.49.6 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AVEncode/M.1632503219.A.960.html
cs8425: google關鍵字: ffmpeg image to video 09/25 01:19
cs8425: 之前都是這樣弄的 直接下指令參數就好 不用call api 09/25 01:19
YouCantGetME: https://video.stackexchange.com/a/13074 樓上說的 09/25 01:51
YouCantGetME: 前面的FPS是呈現速率的重點 後面可以依素材類型調慢 09/25 01:55
YouCantGetME: 比如1秒1張 如果撥放器能吃就只會設1 FPS 省空間 09/25 01:57
YouCantGetME: 設高剩下都是dupe偵 盡量-pix_fmt yuv420p提高相容 09/25 01:58
YouCantGetME: win內建撥放器不吃圖片的444取樣 只吃420 09/25 02:01
visual: 謝謝回覆~所以基本上還是讀實際的圖檔去生成影片檔的作法 09/25 11:57
visual: 比較方便嗎? 09/25 11:57
falcon: 注意 -framerate 和 -r 是同一個選項,重點是順序 09/25 14:54
falcon: 你要指定輸入或輸出fps 是根據選項的位置 09/25 14:54
falcon: ffmpeg -r in_fps -i INPUT -r out_fps OUTPUT 09/25 14:54
falcon: in_fps 就是 1/每張圖片秒數 out_fps 則是輸出fps 09/25 15:00
cs8425: 不是有一堆圖檔要組成影片才問嗎? 如果是程式直接產生畫面 09/25 15:00
cs8425: 又不想存到硬碟後再轉 我記得有個參數是直接讀stdin的 09/25 15:00
visual: To cs8452: 抱歉,沒有描述清楚,之後圖片的資料會是直接 09/25 17:16
visual: 抓程式裡面的buffer,目前是我在測試生成影片檔的功能,才 09/25 17:16
visual: 會先用圖片檔 09/25 17:16
cs8425: 參考: https://stackoverflow.com/questions/51903888/ 09/26 15:24
cs8425: 雖然用pipe效率稍微低一點 但至少比call api簡單方便 而且 09/26 15:25
cs8425: 絕大多數情況不會遇到效率問題 09/26 15:26
cs8425: 有raw跟image2pipe 後面那個你要先編成圖檔再透過pipe傳 09/26 15:27
cs8425: raw的話參數要指定好 長寬 rgba這類的參數 09/26 15:28
visual: 謝謝樓上,我再研究看看 09/27 21:58