当前位置: 首页 > news >正文

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

样本视频(时长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

相关文章:

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

样本视频(时长2分35秒): 大雄兔_百度百科 大雄兔_百度百科不知大家否看过世界上第一部开源电影&#xff1a;Elephants Dream&#xff08;大象之梦&#xff09;。这是一部由主要由开源软件Blender制作的电影短片&#xff0c;证明了用开源软件也能制作出效果媲美大公司的作品。…...

Java08——继承

1. 继承 父类&#xff1a; package com.zsq.extend.improve_; //是pupil和graduate的父类 public class Student {public String name;public int age;private double score;public void info(){System.out.println("姓名&#xff1a;" name " 年龄&#xff1…...

C++高级语法

文章目录 C高级语法面向对象 -- 类/结构体抽象-具体类型 标准I/O流I/O流I/O缓存区 文件操作头文件的重复包含问题深拷贝和浅拷贝&#xff0c;写时复制面向对象的三大特性面向对象是什么 C高级语法 面向对象 – 类/结构体 C使用class定义一个类&#xff0c;使用struct定义一个…...

React学习笔记九-高阶函数与函数柯里化

此文章是本人在学习React的时候&#xff0c;写下的学习笔记&#xff0c;在此纪录和分享。此为第九篇&#xff0c;主要介绍高阶函数与函数柯里化。 高阶函数&#xff0c;和函数的柯里化&#xff0c;是学习react的拓展&#xff0c;方便以后优化代码&#xff0c;更好的学习react。…...

2023年电工杯B题半成品论文使用讲解

注&#xff1a;蓝色字体为说明备注解释字体&#xff0c;不能出现在大家的论文里。黑色字体为论文部分&#xff0c;大家可以根据红色字体的注记进行摘抄。该文件为半成品论文&#xff0c;即引导大家每一步做什么&#xff0c;怎么做&#xff0c;展示按着本团队的解题思路进行建模…...

第1关:ODBC程序设计

第1关&#xff1a;ODBC程序设计 任务描述相关知识ODBC主要功能ODBC接口主要函数ODBC应用程序开发实例DM ODBC应用程序开发总体流程DM ODBC代码编写流程DM ODBC代码编写实例 编程要求测试说明代码参考&#xff1a; 任务描述 本关任务&#xff1a;使用 ODBC 查询表中数据。 相关…...

Kotlin笔记(零)简介

百度百科简介 2017年&#xff0c;google公司在官网上宣布Kotlin成为Android的开发语言&#xff0c;使编码效率大增。Kotlin 语言由 JetBrains 公司推出&#xff0c;这是一个面向JVM的新语言 参考资料 官网&#xff1a;https://kotlinlang.org/中文官网&#xff1a;https://w…...

android 12.0去掉usb授权提示框 默认给予权限

1.概述 在12.0的系统rom产品开发中,在进行iot开发过程中,在插入usb设备时会弹出usb授权提示框,也带来一些不便,这个需要默认授予USB权限,插拔usb都不弹出usb弹窗所以这要从usb授权相关管理页默认给与usb权限 2.去掉usb授权提示框 默认给予权限的相关代码 frameworks/bas…...

工作积极主动分享,善于业务沟通

工作积极主动分享&#xff0c;善于业务沟通 目录概述需求&#xff1a; 设计思路实现思路分析1.工作积极主动承担责任2.善于沟通3.一起常常lauch 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;…...

Opencv-C++笔记 (1) : opencv的数据结构

文章目录 一、OPNECV元素1.CvPoint2、模板类Size模版类Rect模版类RotatedRect模版类 二、MAT1.使用(nrows, ncols, type)&#xff0c;初始化2维矩阵如果需要深拷贝&#xff0c;则使用clone方法。 三、Vec类 一、OPNECV元素 1.CvPoint 为了方便使用&#xff0c;opencv又对常用的…...

什么是时间复杂度?

时间复杂度定义&#xff1a;在计算机科学中&#xff0c;时间复杂性&#xff0c;又称时间复杂度&#xff0c;算法的时间复杂度是一个函数&#xff0c;它定性描述该算法的运行时间。这是一个代表算法输入值的的长度的函数。时间复杂度常用大O符号表述&#xff0c;不包括这个函数的…...

Spring框架中有哪些不同类型的事件

Spring框架中有哪些不同类型的事件 Spring框架中有哪些不同类型的事件 Spring框架中有哪些不同类型的事件 Spring 提供了以下5种标准的事件&#xff1a; 上下文更新事件&#xff08;ContextRefreshedEvent&#xff09;&#xff1a;在调用ConfigurableApplicationContext 接口…...

Codeforcs 1732C2 暴力

题意 传送门 Codeforcs 1732C2 题解 方便起见&#xff0c;区间表示为左闭右开。观察到 f ( l , r ) ≥ f ( l ′ , r ′ ) , [ l ′ , r ′ ) ∈ [ l , r ) f(l,r)\geq f(l,r),[l,r)\in [l,r) f(l,r)≥f(l′,r′),[l′,r′)∈[l,r)&#xff0c;满足单调性&#xff0c;则 […...

Python安全和防护:如何保护Python应用程序和用户数据的安全

章节一&#xff1a;引言 在当今数字化时代&#xff0c;数据安全是一个极其重要的话题。随着Python的广泛应用和越来越多的人使用Python构建应用程序&#xff0c;保护Python应用程序和用户数据的安全变得尤为重要。本文将介绍一些关键的Python安全问题&#xff0c;并提供一些保…...

[转载]Nginx 使用 X-Accel-Redirect 实现静态文件下载的统计、鉴权、防盗链、限速等

需求 统计静态文件的下载次数&#xff1b;判断用户是否有下载权限&#xff1b;根据用户指定下载速度&#xff1b;根据Referer判断是否需要防盗链&#xff1b;根据用户属性限制下载速度&#xff1b; X-Accel-Redirect This allows you to handle authentication, logging or …...

继电器的详细分类

继电器的分类方法较多&#xff0c;可以按作用原理、外形尺寸、保护特征、触点负载、产品用途等分类。 一、按作用原理分 1&#xff0e;电磁继电器 在输入电路内电流的作用下&#xff0c;由机械部件的相对运动产生预定响应的一种继电器。 它包括直流电磁继电器、交流电磁继电器、…...

docker的底层原理,带你上天

1、docker的层级怎么看 先查看当前机器上有哪些镜像 docker images 这里选看mysql的层级 docker image inspect mysql:5.7.29 命令。其中RootFS部分则是表示了分层信息。 2、查看docker的系统信息 因为这台机器的docker不是我安装的&#xff0c;所以不知道具体的根目录在哪里…...

HNU-电子测试平台与工具2-串口实验5次

计算机串口使用与测量 【实验属于电子测试平台与工具】 湖南大学信息科学与工程学院 计科 210X wolf (学号 202108010XXX) 0.环境搭建 在实验开始之前,安装好Ubuntu 20.04操作系统。(这个没有难度) 但要提醒的是,这个ubuntu是xubuntu,而且虚拟硬盘只有10GB的大小…...

Ext JS嵌套分组表格的实现

这里的嵌套分组表格指的是这样一种表格 表格的每一行可以展开下一层的Grid展开的嵌套表格是一个分组的表格显示的效果如下图: 这种显示的方式可以显示 3个层级的数据,比如这里的国家 、 将军等级、将军信息。 如果最外层再使用分组的表格, 则可以显示 4个层级的信息, 这种…...

【配电网重构】基于改进二进制粒子群算法的配电网重构研究(Matlab代码实现

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 &#xff08;忘了有没有这步了 估计有&#xff09; 刷机程序 和 镜像 就不提供了。要刷的时…...

1.3 VSCode安装与环境配置

进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件&#xff0c;然后打开终端&#xff0c;进入下载文件夹&#xff0c;键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

数据库分批入库

今天在工作中&#xff0c;遇到一个问题&#xff0c;就是分批查询的时候&#xff0c;由于批次过大导致出现了一些问题&#xff0c;一下是问题描述和解决方案&#xff1a; 示例&#xff1a; // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...