使用ffmpeg视频切片并加密

想达到的目的:将一个mp4视频文件切割为多个ts片段,并在切割过程中对每一个片段使用 AES-128 加密,最后生成一个m3u8的视频索引文件;

电脑环境 Fedora,已经安装了最新的ffmpeg;

如果要加密,首先准备好一下两个东西:

加密用的 key

openssl rand  16 > enc.key ( 生成一个enc.key文件  )

另一个是 iv

openssl rand -hex 16  ( 生成一段字符串,记下来)

新建一个文件 enc.keyinfo 内容格式如下:

Key URI  # enc.key的路径,使用http形式

Path to key file  # enc.key文件

IV  #  上面生成的iv

几个例子:

http://localhost/video/enc.key
enc.key
48c674428c1e719751565ad00fe24243

最后重点来了

 ffmpeg -y
-i test.mp4
-hls_time 12 \       # 将test.mp4分割成每个小段多少秒

-hls_key_info_file enc.keyinfo
-hls_playlist_type vod \   # vod 是点播,表示PlayList不会变
-hls_segment_filename "file%d.ts" \  #  每个小段的文件名

playlist.m3u8   #  生成的m3u8文件

生成的m3u8文件可以通过大部分播放器直接播放

原文地址:https://www.cnblogs.com/codeAB/p/9184266.html

时间: 2024-10-15 23:49:35

使用ffmpeg视频切片并加密的相关文章

FFmpeg总结(九)用ffmpeg进行切片生成m3u8索引文件

在直播和点播中,通常后台并不会直接给一个http://xxx.xxx.xxx.xxx/xxx.mp4这样的url给客户端,而是通过m3u8索引列表,给客户端.今天来通过ffmpeg进行切片生成m3u8索引文件. 首先将视频文件转为视频编码h.264,音频编码aac格式的mp4文件 1.使用ffprobe查看文件编码方式 2.如果不是mp4的,可以用如下命令进行转 ffmpeg -i input.mkv -acodec copy -vcodec copy out.mp4 3.将mp4转为完整的ts

ffmpeg 文件切片合并

最近再做m3u8切片合并下载的小功能,因为要合并成mp4,所以考虑用ffmpeg来搞,mp4格式忒复杂了. 查了下文档ffmpeg支持concat demux和concat protocol. 用法如下: ffmpeg -i "concat:input1.mpg|input2.mpg|input3.mpg" -c copy output.mpg //这个是concat protocal,这个命令只支持一部分视频格式 如mpeg1,2 mpegts,不支持flv,mp4mylist.tx

关于视频播放、视频切片、跨域访问视频

关于视频播放.视频切片.跨域访问视频 前言 最近在着手部署上线做的一个视频网站,当我们部署到云服务器上后并开始测试视频观看并发量,发现了一个很严重的问题:带宽不足.9 或 10 个人同时观看视频的时候,就会出现有些用户加载不了视频的问题.  我们的云服务器是 1块钱的腾讯云,本身带宽就很低了,所以肯定没有足够大的带宽来支撑这么大的流量传输.这对于一个视频网站来说,带宽这个问题是非常致命的.在不能改变带宽的条件下,于是我们去找了一些方法来提高性能. 分析不足 我们的视频网站使用的内置 Flash

ffmpeg视频格式转换中关键帧的设置

在用ffmpeg转换视频到flv过程中,需要设置关键帧的间隔,以便在播放过程中实现精确定位.在网上查找了不少,最后发现这个指令有效: -g 1 -keyint_min 2 . http://blog.csdn.net/windflow/article/details/6228088 还没试,要试试-- ffmpeg视频格式转换中关键帧的设置,布布扣,bubuko.com

【FFMpeg视频开发与应用基础】五、调用FFMpeg SDK封装音频和视频为视频文件

<FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK>视频教程已经在"CSDN学院"上线,视频中包含了从0开始逐行代码实现FFMpeg视频开发的过程,欢迎观看!链接地址:FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK 工程代码地址:FFmpeg_Tutorial 音频和视频的封装过程为解封装的逆过程,即将独立的音频数据和视频数据按照容器文件所规定的格式封装为一个完整的视频文件的过程.对于大多数消费者来说,视频封装的容器是大家最为熟悉的,因为它直接

使用ffmpeg视频编码过程中踩的一个坑

今天说说使用ffmpeg在写视频编码程序中踩的一个坑,这个坑让我花了好多时间,回头想想,很多时候一旦思维定势真的挺难突破的.下面是不正确的编码结果: 使用ffmpeg做视频编码过程中,首先要新建数据帧,并为数据帧分配相应内存,以便于保存图像数据,为数据帧分配内存需要用到av_image_alloc()这个函数,该函数将根据传入的图像宽.高.图像格式.数据对齐基数等参数进行内存分配. 这其中有一个参数可能会让人迷惑,那就是数据对齐基数这个参数该设置多少?顺便说说为什么要数据对齐,之所以要对齐,主要

【FFMpeg视频开发与应用基础】四、调用FFmpeg SDK解析封装格式的视频为音频流和视频流

<FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK>视频教程已经在"CSDN学院"上线,视频中包含了从0开始逐行代码实现FFMpeg视频开发的过程,欢迎观看!链接地址:FFMpeg视频开发与应用基础--使用FFMpeg工具与SDK 工程代码地址:FFmpeg_Tutorial 我们平常最常用的音视频文件通常不是单独的音频信号和视频信号,而是一个整体的文件.这个文件会在其中包含音频流和视频流,并通过某种方式进行同步播放.通常,文件的音频和视频通过某种标准格式进行

Android 音视频深入 二十一 FFmpeg视频剪切

视频剪切我意外的发现上一次的视频压缩的代码能够运行FFmpeg视频剪切的命令,但是不能做视频合并的命令,因为不能读取记录了几个视频的路径的txt文件. 这里我就说直说视频剪切的过程,不说代码,只说log,毕竟我也不清楚代码往哪运行了?上一次的项目地址https://github.com/979451341/FFmpegCompress 首先我们需要将项目代码里改一下,将runCommand函数传入的参数改成下面这样 int ret = FFmpegNativeBridge.runCommand(

视频编解码的理论和实践2:Ffmpeg视频编解码

近几年,视频编解码技术在理论及应用方面都取得了重大的进展,越来越多的人想要了解编解码技术.因此,网易云信研发工程师为大家进行了归纳梳理,从理论及实践两个方面简单介绍视频编解码技术. 相关阅读推荐 <视频直播关键技术:流畅.拥塞和延时追赶> <视频直播技术详解:直播的推流调度> <音视频通话:小议音频处理与压缩技术> <视频编解码的理论和实践1:基础知识介绍>   1.Ffmpeg介绍 <视频编解码的理论和实践1:基础知识介绍>介绍了视频编码的基础