如何注册并有效使用合肥网站公司提供的域名?

摘要:合肥做网站公司,域名注册成功后怎么使用网站,济宁网站建设联系方式,中国新农村建设网站对于ffmpeg的AES-CTR加密有两种方式,一个是普通的整个视频做加密,另一个是对视频做切片
合肥做网站公司,域名注册成功后怎么使用网站,济宁网站建设联系方式,中国新农村建设网站对于ffmpeg的AES-CTR加密有两种方式#xff0c;一个是普通的整个视频做加密#xff0c;另一个是对视频做切片处理#xff0c;然后进行加密。 一、对于普通的加密方式 直接使用下面的命令就行 ffmpeg -i animal.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes…         对于ffmpeg的AES-CTR加密有两种方式一个是普通的整个视频做加密另一个是对视频做切片处理然后进行加密。 一、对于普通的加密方式 直接使用下面的命令就行 ffmpeg -i animal.mp4 -vcodec copy -acodec copy -encryption_scheme cenc-aes-ctr -encryption_key c7e16c4403654b85847037383f0c2db3 -encryption_kid a7e61c373e219033c21091fa607bf3b8 -encryption_iv 1234567890abcdef1234567890abcdef encrypted_IV3.mp4 简单解释一下各种参数的作用 -vcodec copy -acodec copy 只是将 animal.mp4的音视频数据直接拷贝到encrypted_IV3.mp4中 -encryption_scheme cenc-aes-ctr 表示采用的加密算法是cenc-aes-ctr -encryption_key c7e16c4403654b85847037383f0c2db3 表是encryption_key 的值是c7e16c4403654b85847037383f0c2db3这个值就是解密用的key -encryption_kid a7e61c373e219033c21091fa607bf3b8  表示encryption_kid 的值是a7e61c373e219033c21091fa607bf3b8加解密就是key和id的比对 -encryption_iv 1234567890abcdef1234567890abcdef 表示加密的初始向量IV为1234567890abcdef1234567890abcdef这个参数可以不加ffmpeg是有默认值的 encrypted_IV3.mp4 是加密后的MP4 播放的话采用的是ffplay命令行如下 ffplay encrypted_IV.mp4 -dencryption_key c7e16c4403654b85847037383f0c2db3 -decryption_iv 1234567890abcdef1234567890abcdef-dencryption_key 解密用的密钥就是加密的encryption_key的值 -decryption_iv  如果加密的时候有设置加密初始向量的值那么这里也需要加对应的是encryption_iv的值如果加密的时候采用的是默认的这里可以不加 对于代码加密代码此处复制的别人的项目并不需要这个我就没做验证 AVDictionary *opts NULL; // 指定加密参数 av_dict_set(format_opts, encryption_scheme, cenc-aes-ctr, 0); av_dict_set(format_opts, encryption_key, c7e16c4403654b85847037383f0c2db3, 0); av_dict_set(format_opts, encryption_kid, a7e61c373e219033c21091fa607bf3b8, 0); ret avformat_write_header(AVFormatContext, format_opts); 解密的代码也是别人的但我是经过验证的确认可行 AVDictionary *format_opts NULL; // 指定解密key av_dict_set(format_opts, decryption_key, c7e16c4403654b85847037383f0c2db3, 0); av_dict_set(format_opts, decryption_iv, 1234567890abcdef1234567890abcdef, 0); err avformat_open_input(AVFormatContext, path, AVInputFormat, format_opts); 二、对于流式的加密方式 命令行如下 ffmpeg -i animal.mp4 -movflags frag_keyframe -encryption_scheme cenc-aes-ctr -encryption_key c7e16c4403654b85847037383f0c2db3 -encryption_kid a7e61c373e219033c21091fa607bf3b8 encrypted.mp4 重复的参数我就不赘述了 -movflags 选项用于设置MOV或MP4容器文件格式的特定标志。这些标志会改变输出文件的结构或行为。 frag_keyframe 强制每个关键帧都开始一个新的片段使文件适合于流式传输。这个参数就是区分流式还是普通的一个关键参数 播放的话和普通的一致。 出现下面这三个字段就是说明成功了。工具我用的是Bento4Bento4有个命令mp4dump可以查看。 三、需要注意的是---moov ffmpeg有一个参数叫empty_moov 。当你创建一个MP4文件时通常它首先写入一个moov原子也就是元数据然后是mdat原子包含实际的音频/视频数据。但是如果你想开始记录并在之后添加元数据你需要首先写入一个空的moov原子简单理解就是 普通的MP4 的格式从上到下  moov - data  加了empty_moov的MP4格式:  empty_moov - data - moov 如果你把moov移动到了MP4末尾的同时做了aes-ctr加密就会出错因为ffmpeg在解密aes-ctr时要先知道加密的重要参数而这个参数就在moov中然后才能进行解密如果moov放在了末尾那ffmpeg就不知道要怎么解密了。该情况下我遇到的错误有下面几种 [mov,mp4,m4a,3gp,3g2,mj2 0x149204a10] Incorrect number of samples in encryption info [mov,mp4,m4a,3gp,3g2,mj2 0x1426658b0] saio atom found without saiz [h264 0x7f93ba8a3e00] Invalid NAL unit size (217505651 1332). [h264 0x7f93ba8a3e00] Error splitting the input into NAL units.