Unity 使用 Ffmpeg 加解密视频

使用的插件 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

你可能感兴趣的:(ffmpeg,音视频,unity)