Tsuk1ko / pxder

🖼 Download illusts from pixiv.net P站插画批量下载器
https://moe.best/projects/pxder.html
GNU General Public License v3.0
743 stars 78 forks source link

下载下来的动态图的zip压缩包,如何将里面图片还原或制作成动图,并且将画质损耗降到最低呢 #13

Open MROrangeFanta opened 5 years ago

MROrangeFanta commented 5 years ago

我应该用什么程序制作呢,目前我能够操作的软件只能做到30帧甚至不到,或者画质变的很差,而且都是转化成gif格式,怎么才能做成用PixivAnimatDownloader下载的html那样高品质的格式呢?

Tsuk1ko commented 5 years ago

貌似 PixivAnimatDownloader 没有开源,无法得知其使用了什么方法

不过 pixiv plus 脚本使用了 gif.js,你可以看一下它的转换效果如何

这个功能可以在后续版本中加入

Tsuk1ko commented 5 years ago

不过 gif 格式动图本来的体积就很大,十分大,这也是为什么从p站下载到的动图是分成每一帧的,p站实际上是将这些 jpg 图片放在 canvas 中按设定好的帧率切换而已

一个十几 MB 的 gif,如果拆分成 jpg 或者使用 mp4 之类的视频格式储存,可能就 1MB 不到

如果一定要减小 gif 体积,必定要牺牲像素数、帧数、色彩数等

MROrangeFanta commented 5 years ago

效果是不错,下载的动图体积不到2倍,色彩也没有太大的丢失,缺点是帧数轻微变低,导致动画时长略微变长。

增加这个功能的话应该不错,对于科学上网网速捉鸡的人(我)可以先下载后预览一下,再决定是否去下载原图,而且gif图也能更方便的在移动端上分享(至少我的手机打不开html文件)

目前的话,相比 pixiv plus,还是PixivAnimatDownloader更加适合用来下载p站动图。(不用一直开着该动图的网页)

最后,pxder非常棒非常好用,比心(′▽`ʃ♡ƪ)

Tsuk1ko commented 5 years ago

@MROrangeFanta 谢谢😆

LCYLYM commented 5 years ago

那大佬考不考虑加个下载时自动转gif功能呢QAQ

Tsuk1ko commented 5 years ago

@LCYLYM 在计划中,当然具体更新可能要到7月多,打算重写一个 GUI 版 GUI 咕了

LCYLYM commented 5 years ago

QAQ静等

神代綺凜 notifications@github.com 于2019年6月20日周四 上午12:46写道:

@LCYLYM https://github.com/LCYLYM 在计划中,当然具体更新可能要到7月多,打算重写一个 GUI 版

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Tsuk1ko/pxder/issues/13?email_source=notifications&email_token=ALA4FTCFM7WI43RRN7R2OOTP3JPGBA5CNFSM4HPZWSU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODYCPB3I#issuecomment-503640301, or mute the thread https://github.com/notifications/unsubscribe-auth/ALA4FTCUXO2DFEA4JAPED53P3JPGBANCNFSM4HPZWSUQ .

LCYLYM commented 5 years ago

@LCYLYM 在计划中,当然具体更新可能要到7月多,打算重写一个 GUI 版

唔。。。求下载收藏时能保存下。。不要每次下载收藏都得重新收集。。。

Tsuk1ko commented 5 years ago

象征性的更新一下进度

因为 gif.js 只能在浏览器环境下使用,所以我又找了可以在 node 端使用的 gif-encoder,它本身也是 gif.js 的一个 fork

按理来说它们的效果应该是几乎一样的,但 gif-encoder 生成的实际上比 gif.js 生成的大了 30% 左右,唯一和质量有关的参数也是一样的,很怪

https://github.com/Tsuk1ko/pxder/blob/3e4269f99f0a9a4cfc9ca48d054895a0a3ec1860/src/zip2gif.js#L1-L54

每次看到生成这么鬼大的 gif 真是想咕咕咕,gif 已经很落后了,说到底为什么国内聊天软件还不考虑将 mp4 作为动图表情格式的一种

LCYLYM commented 5 years ago

GIF。。。。感觉还好吧。。而且现在动图还是占大部分的啊。。。mp4表情没那么快普及吧。。QAQ

Tsuk1ko commented 5 years ago

@LCYLYM 唉,等一个思想进步,学学 telegram(

LCYLYM commented 5 years ago

5)PDHOVHSFWW6P~QX2BBJ15

LCYLYM commented 5 years ago

@LCYLYM唉,等一个思想进步,学学电报(

需要挺多时间的吧。。现在大量表情都是gif。。。。。而且gif还是很多人用的-_-||

LCYLYM commented 5 years ago

象征性的更新一下进度

因为gif.js只能在浏览器环境下使用,所以我又找了可以在node端使用的gif-encoder,它本身也是gif.js的一个fork

按理来说它们的效果应该是几乎一样的,但gif-encoder生成的实际上比gif.js生成的大了30%左右,唯一和质量有关的参数也是一样的,很怪

https://github.com/Tsuk1ko/pxder/blob/3e4269f99f0a9a4cfc9ca48d054895a0a3ec1860/src/zip2gif.js#L1-L54

每次看到生成这么鬼大的gif真是想咕咕咕,gif已经很落后了,说到底为什么国内聊天软件还不考虑将mp4作为动图表情格式的一种

所以现在可以自动转gif了咩QAQ

Tsuk1ko commented 5 years ago

@LCYLYM 目前状况是这样的,就算按最好情况来算,gif.js 生成的千夜画的 Miku 吃瓜gif就有4.6MB了,毕竟原图分辨率也比较高,这种大小gif根本没办法直接拿去QQ发

如果你想缩减大小,最好的选择是降低分辨率,但这个在node上想实现非常麻烦,要用数个第三方包,而且为了处理图像这些包还要引入预构建的可执行文件,这让本来很轻巧的程序变得很庞大,但明明就只为了这一个功能而已,我觉得很不值,不如交给专门做这个工作的软件来处理

LCYLYM commented 5 years ago

emmmm主要是收藏啦QAQ,原图也没问题。。。 我用这个 https://chrome.google.com/webstore/detail/pixiv-toolkit/ajlcnbbeidbackfknkgknjefhmbngdnj 下的gif原图也打,但是主要是收藏和高清,所以挺喜欢原图gif的QAQ [image: QQ图片20190804191013.jpg] 😙

神代綺凜 notifications@github.com 于2019年8月27日周二 下午12:08写道:

@LCYLYM https://github.com/LCYLYM 目前状况是这样的,就算按最好情况来算,gif.js 生成的千夜画的 Miku 吃瓜gif就有4.6MB了,毕竟原图分辨率也比较高,这种大小gif根本没办法直接拿去QQ发

如果你想缩减大小,最好的选择是降低分辨率,但这个在node上想实现非常麻烦,要用数个第三方包,而且为了处理图像这些包还要引入预构建的可执行文件,这让本来很轻巧的程序变得很庞大,但明明就只为了这一个功能而已,我觉得很不值,不如交给专门做这个工作的软件来处理

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Tsuk1ko/pxder/issues/13?email_source=notifications&email_token=ALA4FTENGL4E2XIOFM5BNL3QGSSE3A5CNFSM4HPZWSU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5GNGQQ#issuecomment-525128514, or mute the thread https://github.com/notifications/unsubscribe-auth/ALA4FTFNBE5S7B3RRLMLFRLQGSSE3ANCNFSM4HPZWSUQ .

KagurazakaShirosatosu commented 5 years ago

qwq 如果想要无损的话不如尝试一下手动使用ffmpeg把压缩包里面的图片生成mp4? 我目前所使用的ffmpeg指令是 ffmpeg -r 30 -i ./%06d.jpg 1.mp4 , 把压缩包里面的图片解压之后cd过去运行就可以了。 其中 -r 30 指帧率为30,可以改成其他的;

ffmpeg也可以将mp4转成gif,指令是 ffmpeg -i xxx.mp4 -s 640x480 -r 15 xxx.gif

Tsuk1ko commented 5 years ago

@Luobogao 可以,有空我看看 node 有没有合适的 ffmpeg 的封装

darkskygit commented 4 years ago

前阵子看到有人做了个把游戏cg压成视频的工具,不过好像没开源,我问问作者有没有兴趣加上把序列帧压成视频的功能🤔

darkskygit commented 4 years ago

大概把下载的图全部压成视频也没问题,cg压缩了因为还可以解压出来

KagurazakaShirosatosu commented 4 years ago

象征性的更新一下进度 因为gif.js只能在浏览器环境下使用,所以我又找了可以在node端使用的gif-encoder,它本身也是gif.js的一个fork 按理来说它们的效果应该是几乎一样的,但gif-encoder生成的实际上比gif.js生成的大了30%左右,唯一和质量有关的参数也是一样的,很怪 https://github.com/Tsuk1ko/pxder/blob/3e4269f99f0a9a4cfc9ca48d054895a0a3ec1860/src/zip2gif.js#L1-L54

每次看到生成这么鬼大的gif真是想咕咕咕,gif已经很落后了,说到底为什么国内聊天软件还不考虑将mp4作为动图表情格式的一种

所以现在可以自动转gif了咩QAQ

毕竟gif不用审核就能发布

Skimige commented 4 years ago

感觉转成 webm 或者 mp4 之类的挺香的… ffmpeg 可以直接调用(让用户自己去下x

Tsuk1ko commented 4 years ago

感觉转成 webm 或者 mp4 之类的挺香的… ffmpeg 可以直接调用(让用户自己去下x

原本确实是这么打算的,但是由于自己现在也不怎么用 pxder 了,没有动力去写新功能了

image

LCYLYM commented 4 years ago

QWQ

神代綺凜 notifications@github.com 于2020年3月6日周五 下午11:26写道:

感觉转成 webm 或者 mp4 之类的挺香的… ffmpeg 可以直接调用(让用户自己去下x

原本确实是这么打算的,但是由于自己现在也不怎么用 pxder 了,没有动力去写新功能了

[image: image] https://user-images.githubusercontent.com/24877906/76096985-e287b600-6001-11ea-890c-e06f8a7a3e5e.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Tsuk1ko/pxder/issues/13?email_source=notifications&email_token=ALA4FTGEJ3BBYRLKWDGDKOTRGEI3FA5CNFSM4HPZWSU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOBXRFA#issuecomment-595818644, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALA4FTF5MYFZ3K6ZHTUK66TRGEI3FANCNFSM4HPZWSUQ .

LCYLYM commented 4 years ago

是换工具了还是不怎么下载了qwq

神代綺凜 notifications@github.com 于2020年3月6日周五 下午11:26写道:

感觉转成 webm 或者 mp4 之类的挺香的… ffmpeg 可以直接调用(让用户自己去下x

原本确实是这么打算的,但是由于自己现在也不怎么用 pxder 了,没有动力去写新功能了

[image: image] https://user-images.githubusercontent.com/24877906/76096985-e287b600-6001-11ea-890c-e06f8a7a3e5e.png

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Tsuk1ko/pxder/issues/13?email_source=notifications&email_token=ALA4FTGEJ3BBYRLKWDGDKOTRGEI3FA5CNFSM4HPZWSU2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOBXRFA#issuecomment-595818644, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALA4FTF5MYFZ3K6ZHTUK66TRGEI3FANCNFSM4HPZWSUQ .

LCYLYM commented 4 years ago

主要是下载下来很多压缩包希望能批量转或者批量从p站直接下下来gif,主要是自己看。。

ak1ra-komj commented 2 years ago

写了段 bash 脚本 调用 ffmpeg 来转换成 .mp4, 直接用了压缩包文件名中的 delay 值配置帧率, 在 pxder 的下载目录执行脚本就好了, 用了 findparallel 进行批量转换.