Ubuntu下使用mingw-w64交叉编译ffmpeg

Ubuntu下使用mingw-w64交叉编译ffmpeg,第1张

网上大部分编译windows版ffmpeg的教程都是基于msys+mingw的,完全运行在windows上。由于msys2的性能实在是太糟糕了,编译速度太感穗困余人,因此决定研究Linux下使用mingw-w64交叉编译

先是安装ubuntu版的mingw-w64

sudo apt install mingw-w64

然后在configure ffmpeg的时候,在正常的配置项之后猜滚加上。

--arch=x86 --target-os=mingw32 --cross-prefix=i686-w64-mingw32-

上面是32位库编译的配置,64位的如下

--arch=x86_64 --target-os=mingw32 --cross-prefix=x86_64-w64-mingw32-

而且最好使用动态库,静态库还需要链接一大堆mingw的库实现,而且还可能链接失败。但这样编译出来的动态库,还需要依赖 libgcc_s_sjlj-1.dll。如果要移除这个依赖,configure的时尺镇候还要加上 --extra-ldflags='-static-libgcc'

我的博客原文

众所周知webp 出自google,它是一种图片的格式, webp减少图片体积,按照官方的说法,在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。 起初webp并不支持动图,直到后来在0.2.0的版本上加上了动图,称为animated webp。

最早接触webp是因为公司要减小app包的体积,因好瞎为公司是做地图导航的,有很多图片资源文件,而且Android和iOS都有相应的解决方案,所以觉得将所有图片资源替换为webp,经过几天的折腾最终减少了将近20m。

这次我要使用animated webp作为客户端动图,是因为其效率和压缩比上都有一个比较好的权衡,抓包过抖音的动图发现其格式为webp,再者animated WebP支持24bit的RGB色,能有很好的色彩空间,服务端使用ffmpeg制作也很方便快捷。

我是在linux(Ubuntu)下使用的ffmpeg,下面为安装ffmpeg

将jpg图像的格式转换为webp非常简单,直接使用命令就可以实现转码。这条命令未设置任键袜衡何参数,使用的默稿做认的参数:

将视频制作为一个animated webp

如果要调整生成animated webp的大小或降低帧速率,可使用 scale, fps ,比如以下:

FFmpeg Codecs Documentation :: libwebp

FFmpeg Filters Documentation : scale

FFmpeg Filters Documentation : fps

常用方法如下:

sudo chmod 600 ××× (只有所有者有读和写的权限

sudo chmod 644 ××× (所有者有册汪读和写的权限,组用户只有读的权限)

sudo chmod 700 ××× (只有所有者有读和写以及执行的权限)

sudo chmod 666 ××× (每个人都有读和写的权限)

sudo chmod 777 ××× (每个人都有读和写以及执行的权限)

其中×××指文件名(也可以是文件州侍仔夹名,不过要在chmod后加-ld)。

解释一下,其实整个命令的形式是

sudo chmod -(代表类型)×××(所有者)×××(组用户)×××(其他用户)

三位数的每一位都表示一个用户类型的权限设置。取值是0~7,即二进制的[000]~[111]。

这个三位的二进制数的每一位分别表示读、写、执行权限。

如000表示三项权限均无,而100表示只读。这样,我们就有了下面的对应:

0 [000] 无任何权限

4 [100] 只读权限

6 [110] 读写权限

7 [111] 读写执行权限

现在看上面的几个常用用法就非常清楚了。试谈渗着自己来修改权限吧

最后同时附上查询文件(或文件夹)权限的命令

ls -l 文件名称 (文件夹将-l改为-ld)。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12548577.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存