Unity 使用 Ffmpeg 加解密视频

本文介绍了如何使用FfmpegforUnity对视频进行加密、解密和压缩操作。在Android和IOS平台上,需要特定的编码环境。加密命令涉及加密模式、密钥和ID;解密时需提供相同的密钥。视频压缩关注分辨率和数据比特率的设置。此外,文章指出在Android端播放加密视频可能导致应用卡死,建议先解密再播放,并提示解密后需等待片刻再播放以避免潜在的IO问题。

使用的插件 Ffmpeg for Unity
Ffmpeg 是视频处理的类库,注意插件的使用要求。
Android / IOS 要求 ilcpp和.net 4.x编码
Ffmpeg 加密 视频的命令**

ffmpeg -i “input.mp4” -vcodec copy -acodec copy -encryption_scheme cenc-aes-ctr -encryption_key c7e16c4403654b85847037383f0c2db3 -encryption_kid a7e61c373e219033c21091fa607bf3b8 “encryption.mp4”

input.mp4 要加密的视频
encryption.mp4 加密后的视频
-encryption_scheme cenc-aes-ctr 指定加密方式
-encryption_key c7e16c4403654b85847037383f0c2db3 指定加密秘钥128位 c7e16c4403654b85847037383f0c2db3 一定要保存,解密视频,和播放视频会用到。
-encryption_kid a7e61c373e219033c21091fa607bf3b8 指定加密Id 暂时还不知道有什么作用
FFmpeg 解密视频的命令

ffmpeg -decryption_key c7e16c4403654b85847037383f0c2db3 -i “encryption.mp4” -y vcodec copy -acodec copy “output.mp4”

Android 端解密时需要 拷贝 视频编码 音频编码。否则会出现解密失败的情况
Ffmpeg 压缩视频的命令

ffmpeg -i "input.mp4" -y -f mp4 -vcodec h264 -t 1000 -s 1920x1080  -b:v 2000k -acodec copy "output.mp4"

-s 1920x1080 指定视频压缩后的分辨率 (会影响视频大小)值越大占用空间越大
-b:v 2000k 指定视频的数据比特率 (影响视频的大小和画质)值越大视屏越清晰占用空间越大
Ffmpeg 获得视频的第一帧 并转换成图片

ffmpeg -i "input.mp4" -y -f mjpeg -ss 00.001 -t 00.001 -s 1920x1080 "out.jpg"

-t 00.001 指定视频的时间
-s 1920x1080 输出图片的大小

Ffmpeg for Unity 使用时遇到的坑
FFmpegPlayCommand 播放视频时 安卓端视频播放过程应用卡死
FfplayCommand 播放视频时 加密的的视频 滑动条无效果
推荐将加密的视频解密后在播放,这样在多个平台都可以。
注意:Ffmpeg for Unity 解密完成后 不要立马播放视频 ,立即播放可能读不到视频。需要等1秒左右的时间在播放。怀疑时没有及时释放IO导致的bug

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值