[请问] 如何将多个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