ubuntu20.04 ffmpeg mp4转AES加密的m3u8分片视频

news2024/11/16 21:24:55

样本视频(时长2分35秒):

大雄兔_百度百科

大雄兔_百度百科不知大家否看过世界上第一部开源电影:Elephants Dream(大象之梦)。这是一部由主要由开源软件Blender制作的电影短片,证明了用开源软件也能制作出效果媲美大公司的作品。https://baike.baidu.com/item/%E5%A4%A7%E9%9B%84%E5%85%94/9902566

 

 curl -k -O https://vd3.bdstatic.com/mda-mh4d5tn0e89vvqrm/480p/h264/1628155168851423956/mda-mh4d5tn0e89vvqrm.mp4;



root@fv-az741-166:/tmp# md5sum mda-mh4d5tn0e89vvqrm.mp4 
bd961709a04977012168b2ca8e2d03dc  mda-mh4d5tn0e89vvqrm.mp4
root@fv-az741-166:/tmp# ls -al mda-mh4d5tn0e89vvqrm.mp4 
-rw-r--r-- 1 root root 12971533 Jun  3 05:05 mda-mh4d5tn0e89vvqrm.mp4
root@fv-az741-166:/tmp# 

安装ffmpeg:

sudo apt update;\
sudo apt install ffmpeg;\
ffmpeg -decoders;\
ffmpeg -version;

检查openssl版本:

root@fv-az741-166:/tmp# openssl version
OpenSSL 1.1.1f  31 Mar 2020
root@fv-az741-166:/tmp# grep NA /etc/os-release 
NAME="Ubuntu"
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
root@fv-az741-166:/tmp# 



root@fv-az741-166:/tmp# ffmpeg -version;
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 31.100 / 56. 31.100
libavcodec     58. 54.100 / 58. 54.100
libavformat    58. 29.100 / 58. 29.100
libavdevice    58.  8.100 / 58.  8.100
libavfilter     7. 57.100 /  7. 57.100
libavresample   4.  0.  0 /  4.  0.  0
libswscale      5.  5.100 /  5.  5.100
libswresample   3.  5.100 /  3.  5.100
libpostproc    55.  5.100 / 55.  5.100
root@fv-az741-166:/tmp# 

生成密钥文件:

cd /tmp;
openssl rand 16 > enc.key ;
cat <<EOF>enc.keyinfo
./enc.key
/tmp/enc.key
$(openssl rand -hex 16)
EOF


root@fv-az741-166:/tmp# cd /tmp;
root@fv-az741-166:/tmp# openssl rand 16 > enc.key ;
root@fv-az741-166:/tmp# 
root@fv-az741-166:/tmp# cat enc.key
m¥ݳ¸򓬚<7":root@fv-az741-166:/tmp# cat <<EOF>enc.keyinfo
> ./enc.key
> /tmp/enc.key
> $(openssl rand -hex 16)
> EOF
root@fv-az741-166:/tmp# 
root@fv-az741-166:/tmp# cat enc.keyinfo 
./enc.key
/tmp/enc.key
ac521b411402a5d47f5dcbea63e1dc30
root@fv-az741-166:/tmp#

切分mp4视频:

ffmpeg -y \
-i "/tmp/mda-mh4d5tn0e89vvqrm.mp4" \
-hls_time "10" \
-hls_key_info_file "/tmp/enc.keyinfo" \
-hls_playlist_type "vod" \
-hls_list_size "0" \
-hls_segment_filename "/tmp/ffmpeg_%d.ts" \
"/tmp/ffmpeg_playlist.m3u8"
 


hls_time:指定生成 ts 视频切片的每片时间长度
hls_key_info_file:enc.keyinfo文件的位置
hls_list_size: 索引播放列表的最大列数 默认5,0 为不限制
hls_segment_filename:生成ts和m3u8文件的路径及文件名

root@fv-az741-166:/tmp# cat ffmpeg_playlist.m3u8 
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:14
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="./enc.key",IV=0xac521b411402a5d47f5dcbea63e1dc30
#EXTINF:11.080000,
ffmpeg_0.ts
#EXTINF:12.760000,
ffmpeg_1.ts
#EXTINF:8.200000,
ffmpeg_2.ts
#EXTINF:10.160000,
ffmpeg_3.ts
#EXTINF:8.200000,
ffmpeg_4.ts
#EXTINF:12.560000,
ffmpeg_5.ts
#EXTINF:7.040000,
ffmpeg_6.ts
#EXTINF:10.960000,
ffmpeg_7.ts
#EXTINF:9.880000,
ffmpeg_8.ts
#EXTINF:9.840000,
ffmpeg_9.ts
#EXTINF:9.360000,
ffmpeg_10.ts
#EXTINF:11.400000,
ffmpeg_11.ts
#EXTINF:8.880000,
ffmpeg_12.ts
#EXTINF:11.120000,
ffmpeg_13.ts
#EXTINF:14.320000,
ffmpeg_14.ts
#EXT-X-ENDLIST
root@fv-az741-166:/tmp# ls -al ff*
-rw-r--r-- 1 root root 1068032 Jun  3 05:14 ffmpeg_0.ts
-rw-r--r-- 1 root root 1207344 Jun  3 05:14 ffmpeg_1.ts
-rw-r--r-- 1 root root 1314880 Jun  3 05:14 ffmpeg_10.ts
-rw-r--r-- 1 root root  995472 Jun  3 05:14 ffmpeg_11.ts
-rw-r--r-- 1 root root 1607600 Jun  3 05:14 ffmpeg_12.ts
-rw-r--r-- 1 root root 1166176 Jun  3 05:14 ffmpeg_13.ts
-rw-r--r-- 1 root root 1009376 Jun  3 05:14 ffmpeg_14.ts
-rw-r--r-- 1 root root  655936 Jun  3 05:14 ffmpeg_2.ts
-rw-r--r-- 1 root root  838864 Jun  3 05:14 ffmpeg_3.ts
-rw-r--r-- 1 root root  557616 Jun  3 05:14 ffmpeg_4.ts
-rw-r--r-- 1 root root 1426736 Jun  3 05:14 ffmpeg_5.ts
-rw-r--r-- 1 root root  921584 Jun  3 05:14 ffmpeg_6.ts
-rw-r--r-- 1 root root 1164288 Jun  3 05:14 ffmpeg_7.ts
-rw-r--r-- 1 root root 1482016 Jun  3 05:14 ffmpeg_8.ts
-rw-r--r-- 1 root root 1161856 Jun  3 05:14 ffmpeg_9.ts
-rw-r--r-- 1 root root     657 Jun  3 05:14 ffmpeg_playlist.m3u8
root@fv-az741-166:/tmp# 

参考文档:
 

https://blog.csdn.net/sinat_36106456/article/details/126301704

Ubuntu 20.04安装ffmpeg详细教程-便宜VPS测评root@ubuntu-s-1vcpu-1gb-lon1-01:~# do-release-upgrade Checking for a new Ubuntu release You have not rebooted after updating a package which requires a reboot. https://www.cnraksmart.com/7512.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/605111.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1-9 随机算法【手写+Xmind笔记】

文章目录 1 Min-Cut【手写笔记】1.1 问题描述1.2 解决方案1.3 概率证明 2 赠券收集【手写笔记】3 快排期望【手写笔记】4 素数性质【手写笔记】4.1 基本性质4.2 解决方案4.3 群论4.4 费马小定理4.5 Miller Rabin素性测试 5-6 力矩与偏差【手写笔记】5.1 基础不等式5.2 矩生成函…

[图表]pyecharts模块-柱状图

[图表]pyecharts模块-柱状图 先来看代码&#xff1a; from pyecharts.charts import Bar from pyecharts.faker import Faker from pyecharts.globals import ThemeTypec (Bar({"theme": ThemeType.MACARONS}).add_xaxis(Faker.choose()).add_yaxis("商家A&q…

Spring 核心概念之一 IoC

前言 欢迎来到本篇文章&#xff01;通过上一篇什么是 Spring&#xff1f;为什么学它&#xff1f;的学习&#xff0c;我们知道了 Spring 的基本概念&#xff0c;知道什么是 Spring&#xff0c;以及为什么学习 Spring。今天&#xff0c;这篇就来说说 Spring 中的核心概念之一 Io…

day2 -- 数据库的安全管理和维护

brief 访问控制的目的不仅仅是防止用户的恶意企图。数据梦魇更为常见的是无意识错误的结果&#xff0c;如错打MySQL语句&#xff0c;在不合适的数据库中操作或其他一些用户错误。通过保证用户不能执行他们不应该执行的语句&#xff0c;访问控制有助于避免这些情况的发生。管理…

Makerbase SimpleFOC ESP32 例程6 双电机闭环位置力矩互控

Makerbase SimpleFOC ESP32 例程6 双电机闭环位置力矩互控 第一部分 硬件介绍 1.1 硬件清单 序号品名数量1ESP32 FOC V1.0 主板12YT2804电机2312V电源适配器14USB 线156pin杜邦线2 注意&#xff1a;YT2804是改装的云台无刷电机,带有AS5600编码器&#xff0c;可实现360连续运…

Go 字节跳动—从需求到上线全流程

走进后端开发流程 整个课程会带大家先从理论出发&#xff0c;思考为什么有流程 大家以后工作的团队可能不一样&#xff0c;那么不同的团队也会有不同的流程&#xff0c;这背后的逻辑是什么 然后会带大家按照走一遍从需求到上线的全流程&#xff0c;告诉大家在流程的每个阶段&am…

angular环境安装 (含nodejs详细安装步骤)

在安装本次环境之前&#xff0c;需要先把本机上的nodejs环境卸载&#xff0c;环境变量手动删除&#xff01;安装过程种环境才不会产生副作用&#xff01;实际项目安装的一次记录&#xff0c;踩了太多坑&#xff0c;记录一下&#xff0c;旨在记录&#xff01;项目需要两个不用版…

常用设计模式介绍~~~ Java实现 【概念+案例+代码】

前言 想要读懂源码、让自己的代码写的更加优雅&#xff0c;重构系统等。理解设计模式的思想&#xff0c;可以让我们事半功倍。以下稍微整理了常用的设计模式、每一种设计模式都有详细的概念介绍、案例说明、代码实例、运行截图等。这里给出目录导航。 目录 一、创建型模式 【一…

现在的面试把我卷崩溃了....

现在的面试也太卷了&#xff0c;前几天组了一个软件测试面试的群&#xff0c;没想到效果直接拉满&#xff0c;看来大家对面试这块的需求还是挺迫切的。昨天我就看到群友们发的一些面经&#xff0c;感觉非常有参考价值&#xff0c;于是我就问他还有没有。 结果他给我整理了一份…

Linux命令学习之cd

cd是进入某个目录的命令。man 1 cd看一下cd的使用说明。 发现cd是一个Shell内置命令。内置命令可以使用help 命令行来看一下帮助&#xff0c;比如help cd就可以看一下cd的帮助。 图中的[dir]就是参数&#xff0c;这个参数是目录名&#xff0c;比如可以使用cd /可以进入根目录…

外包派遣3年华为,合同结束转正,转正后工资12k-15k,13薪,包三餐,值得去吗?

“但凡有点机会&#xff0c;千万别去外包! ” 在程序员圈子里面&#xff0c;外包程序员似乎永远处于一个尴尬的角色&#xff0c;如果你说他们不是程序员吧&#xff0c;他们也是程序员。应该说是外包这个词比较尴尬吧。赶着和正式工一样的伙&#xff0c;待遇缺天差地别&#xf…

使用VS2019如何创建Win32的项目?

闲来无事&#xff0c;想学习一下Win32的开发&#xff0c;使用VS2019如何创建Win32的项目&#xff1f;费了老大的劲儿&#xff0c;终于捣鼓出来&#xff0c;现在记录一下。 1 创建新项目&#xff0c;在筛选栏选择C Windows 桌面&#xff0c;如下图&#xff0c;选择第一个“Windo…

由于找不到msvcr90.dll无法继续执行代码的5个修复方法

msvcr90.dll是Microsoft Visual C 2008 Redistributable软件包中的一个库文件&#xff0c;它是用于在Windows操作系统上运行C应用程序的重要文件之一。当我们电脑系统中的msvcr90.dll丢失或者损坏了&#xff0c;就会导致很多软件跟游戏无法打开运行&#xff0c;会提示“由于找不…

Linux文件权限及用户管理

文件权限 在Linux中&#xff0c;每个文件和目录都有一组权限&#xff0c;这些权限决定了哪些用户可以访问文件或目录&#xff0c;以及他们可以进行什么样的操作。权限分为三类&#xff1a; 所有者权限&#xff1a;这些权限适用于文件或目录的所有者。 组权限&#xff1a;这些…

vue+elementui+nodejs毕业设计选题管理系统x7xs6

为了实现对不同角色的分权限管理&#xff0c;从而让各个用户各司其职。学生用户需要登录系统后才能够进行毕设相关文件上传与查看&#xff0c;教师用户需要登录后才能够在线查看毕设相关文件并审核留言等。管理人员需要登录才能够管理各种功能&#xff0c;这三种用户的权限如下…

初阶二叉树的相关性质定理及题目练习

前言&#xff1a; 前面我们介绍了初阶二叉树的相关知识&#xff0c;二叉树常考的还是链式二叉树&#xff0c;而且二叉树也会考很多选择题&#xff0c;本文重点是在给出一些常考的二叉树的性质定理推导和经典练习题目配合强化巩固知识。 目录 一、二叉树的常见性质定理 二、常…

力扣高频SQL50题(基础版)——第四天

力扣高频SQL50题(基础版)——第四天 1 每台机器的进程平均运行时间 1.1 题目内容 1.1.1 基本题目信息1 1.1.2 基本题目信息2 1.1.3 示例输入输出 1.2 示例sql语句 SELECT machine_id,ROUND(SUM(IF(activity_typeend,timestamp,timestamp*-1))/count(distinct process_id),3…

English Learning - L3 作业打卡 Lesson4 Day26 2023.5.30 周二

English Learning - L3 作业打卡 Lesson4 Day26 2023.5.30 周二 引言&#x1f349;句1: It is easy to find my husband in a crowd.成分划分弱读连读语调 &#x1f349;句2: He stands almost two meters tall.成分划分爆破语调 &#x1f349;句3: He is a tall drink of wate…

嵌入式系统中u-boot和bootloader到底有什么区别

嵌入式软件工程师都听说过 u-boot 和 bootloader&#xff0c;但很多工程师依然不知道他们到底是啥。 今天就来简单讲讲 u-boot 和 bootloader 的内容以及区别。 Bootloader Bootloader从字面上来看就是启动加载的意思。用过电脑的都知道&#xff0c;windows开机时会首先加载…

【Nginx性能优化系列】Nginx绑定特定的CPU性能测评

【Nginx性能优化系列】Nginx绑定特定的CPU性能测评 前导知识说明:   CPU内部的缓存叫Cache   比如一颗CPU有4核,每个核心都有自己的独立缓存,以及所有核心的共享缓存。缓存分为一级缓存、二级缓存、三级缓存,一级缓存的速率基本上CPU相当,当然一级缓存的存储空间也较小…