作者visual (米干)
看板AVEncode
标题[请问] 如何将多个jpg档输出成mp4影片档
时间Sat Sep 25 01:06:57 2021
我目前参考了以下文章的写法 (第二段的部分)
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://webptt.com/cn.aspx?n=bbs/AVEncode/M.1632503219.A.960.html
1F:→ cs8425: google关键字: ffmpeg image to video 09/25 01:19
2F:→ cs8425: 之前都是这样弄的 直接下指令参数就好 不用call api 09/25 01:19
4F:→ YouCantGetME: 前面的FPS是呈现速率的重点 後面可以依素材类型调慢 09/25 01:55
5F:→ YouCantGetME: 比如1秒1张 如果拨放器能吃就只会设1 FPS 省空间 09/25 01:57
6F:→ YouCantGetME: 设高剩下都是dupe侦 尽量-pix_fmt yuv420p提高相容 09/25 01:58
7F:→ YouCantGetME: win内建拨放器不吃图片的444取样 只吃420 09/25 02:01
8F:→ visual: 谢谢回覆~所以基本上还是读实际的图档去生成影片档的作法 09/25 11:57
9F:→ visual: 比较方便吗? 09/25 11:57
10F:推 falcon: 注意 -framerate 和 -r 是同一个选项,重点是顺序 09/25 14:54
11F:→ falcon: 你要指定输入或输出fps 是根据选项的位置 09/25 14:54
12F:→ falcon: ffmpeg -r in_fps -i INPUT -r out_fps OUTPUT 09/25 14:54
13F:→ falcon: in_fps 就是 1/每张图片秒数 out_fps 则是输出fps 09/25 15:00
14F:→ cs8425: 不是有一堆图档要组成影片才问吗? 如果是程式直接产生画面 09/25 15:00
15F:→ cs8425: 又不想存到硬碟後再转 我记得有个参数是直接读stdin的 09/25 15:00
16F:→ visual: To cs8452: 抱歉,没有描述清楚,之後图片的资料会是直接 09/25 17:16
17F:→ visual: 抓程式里面的buffer,目前是我在测试生成影片档的功能,才 09/25 17:16
18F:→ visual: 会先用图片档 09/25 17:16
20F:→ cs8425: 虽然用pipe效率稍微低一点 但至少比call api简单方便 而且 09/26 15:25
21F:→ cs8425: 绝大多数情况不会遇到效率问题 09/26 15:26
22F:→ cs8425: 有raw跟image2pipe 後面那个你要先编成图档再透过pipe传 09/26 15:27
23F:→ cs8425: raw的话参数要指定好 长宽 rgba这类的参数 09/26 15:28
24F:→ visual: 谢谢楼上,我再研究看看 09/27 21:58