ffmpeg教程:视频切片与合并,加密与解密

这篇具有很好参考价值的文章主要介绍了ffmpeg教程:视频切片与合并,加密与解密。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、ffmpeg安装教程

        1.1 下载地址

        1.2 ffmpeg环境配置

2、视频分割成ts文件

        2.1 准备mp4文件

        2.2 打开当前目录cmd命令窗口

3、根据m3u8文件合并ts文件

        3.1 准备文件

        3.2 输入命令

4、视频切片与加密

        4.1 下载安装openssl

         4.2 配置openssl

        4.3 生成密钥

        4.4 生成IV

        4.5 编写keyinfo文件

        4.6 切片与加密命令

         4.7  m3u8文件解释

5、解密与合并

        5.1 文件准备(来自第四部分)

        5.2  解密合并命令


1、ffmpeg安装教程

        1.1 下载地址

                Releases · BtbN/FFmpeg-Builds (github.com)

        1.2 ffmpeg环境配置

                复制ffmpeg解压后的路径

     ts切片合并,ffmpeg

                 配置ffmpeg环境变量:高级系统设置>环境变量>双击系统变量Path>新建>粘贴>确认

                ts切片合并,ffmpeg

 

                文章来源地址https://www.toymoban.com/news/detail-715003.html

2、视频分割成ts文件

        2.1 准备mp4文件

                part.mp4

        2.2 打开当前目录cmd命令窗口

                ts切片合并,ffmpeg

 

                输入命令:

ffmpeg -i part.mp4 -c:v libx264 -c:a aac -strict -2 -f hls -hls_list_size 0 -hls_time 5 part.m3u8

ts切片合并,ffmpeg

 

默认的每片长度为 2 秒,m3u8 文件中默认只保存最新的 5 条片的信息,导致最后播放的时候只能播最后的一小部分(直播的时候特别注意)。
-hls_time n 设置每片的长度,默认值为 2,单位为秒。
-hls_list_size n 设置播放列表保存的最多条目,设置为 0 会保存有所片信息,默认值为5。
-hls_wrap n 设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0。这个选项能够避免在磁盘上存储过多的 片,而且能够限制写入磁盘的最多的片的数量。
-hls_start_number n 设置播放列表中 sequence number 的值为 number,默认值为 0。
注意:播放列表的 sequence number 对每个 segment 来说都必须是唯一的,而且它不能和片的文件名(当使用 wrap 选项时,文件名有可能会重复使用)混淆。
TS 文件是一种媒体的扩展名,它是日本高清摄像机拍摄下进行的封装格式。
MPEG2-TS(Transport Stream“传输流”;又称TS、TP、MPEG-TS 或 M2T)
是用于音效、图像与数据的通信协定,最早应用于DVD的实时传送节目。
MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。

3、根据m3u8文件合并ts文件

        3.1 准备文件

ts切片合并,ffmpeg                

        3.2 输入命令

                ffmpeg -i part.m3u8 -c copy 2.mp4

4、视频切片与加密

        4.1 下载安装openssl

Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions (slproweb.com)

   ts切片合并,ffmpeg

         4.2 配置openssl

                复制安装后的目录如图

                ts切片合并,ffmpeg

                 配置openssl高级变量:高级系统设置>环境变量>双击系统变量Path>新建>粘贴>确认

                ts切片合并,ffmpeg

 

                测试

ts切片合并,ffmpeg                

        4.3 生成密钥

                openssl rand 16 > [密钥存放位置]

         命令: openssl rand 16 > R:\a_tast\encrypt.key

        4.4 生成IV

        命令:openssl rand -hex 16

              得到一串字符串:354e640be9affa01868e6b2b7785b5d2

        4.5 编写keyinfo文件

               文件名:aa.keyinfo

http://localhost:8080/ld/encrypt.key
R:\a_tast\encrypt.key
354e640be9affa01868e6b2b7785b5d2

第一段:解密文件路径,必须是URI,用来解密视频文件,这里使用tomcat服务

第二段:是加密文件路径

第三段:之前生成的IV

        4.6 切片与加密命令

                依然打开当前目录的cmd窗口如2.2,或者使用绝对路径

ffmpeg -y -i 1.mp4 -c:v libx264 -c:a copy -f hls -hls_time 5 -hls_list_size 0 -hls_key_info_file aa.keyinfo -hls_playlist_type vod -hls_segment_filename part%d.ts part.m3u8

    ts切片合并,ffmpeg

         4.7  m3u8文件解释

                

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:8
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="http://localhost:8080/ld/encrypt.key",IV=0x354e640be9affa01868e6b2b7785b5d2
#EXTINF:7.833333,
part0.ts
#EXTINF:3.600000,
part1.ts
#EXTINF:4.166667,
part2.ts
#EXTINF:6.400000,
part3.ts
#EXTINF:4.166667,
part4.ts
#EXTINF:4.166667,
part5.ts
#EXTINF:0.966667,
part6.ts
#EXT-X-ENDLIST
#EXTM3U                    M3U8文件头,必须放在第一行;
#EXT-X-MEDIA-SEQUENCE      第一个TS分片的序列号,一般情况下是0,但是在直播场景下,这个序列号标识直播段的起始位置; #EXT-X-MEDIA-SEQUENCE:0
#EXT-X-TARGETDURATION      每个分片TS的最大的时长;   
#EXT-X-TARGETDURATION:10     每个分片的最大时长是 10s
#EXT-X-ALLOW-CACHE         是否允许cache;          
#EXT-X-ALLOW-CACHE:YES      
#EXT-X-ALLOW-CACHE:NO    默认情况下是YES
#EXT-X-ENDLIST             M3U8文件结束符;
#EXTINF                    extra info,分片TS的信息,如时长,带宽等;一般情况下是    
#EXTINF:<duration>,[<title>] 后面可以跟着其他的信息,逗号之前是当前分片的ts时长,分片时长 移动要小于 
#EXT-X-TARGETDURATION 定义的值;
#EXT-X-VERSION             M3U8版本号
#EXT-X-DISCONTINUITY       该标签表明其前一个切片与下一个切片之间存在中断。下面会详解
#EXT-X-PLAYLIST-TYPE       表明流媒体类型;
#EXT-X-KEY                 是否加密解析,    
#EXT-X-KEY:METHOD=AES-128,URI="http://localhost:8080/ld/encrypt.key"    加密方式是AES-128,秘钥需要请求http://localhost:8080/ld/encrypt.key,请求回来存储在本地;

5、解密与合并

        5.1 文件准备(来自第四部分)

                ts切片合并,ffmpeg

        5.2  解密合并命令

ffmpeg -allowed_extensions ALL -protocol_whitelist "file,http,crypto,tcp" -i part.m3u8 -c copy 2.mp4

ts切片合并,ffmpeg

                 一定要确保m3u8里面的请求路径能访问到

                

到了这里,关于ffmpeg教程:视频切片与合并,加密与解密的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 爬虫|Python|ts格式的加密视频合并方法

    对于爬虫来说,没有道德(比如,某些爬虫上w的并发,那么,一些小站可能就会崩溃,其实爬虫也是可以作为网络攻击的,假设有需要攻击的网站,上w甚至上百万的并发爬虫持续攻击,这个网站可能开不了),没有知识产权(爬虫行为本来就是无视知识产权的,例如,爬取

    2024年02月08日
    浏览(44)
  • 不用FFMpeg,用Python代码解密ts文件还原mp4视频(前提:有正确的key)

    好不容易下载了.ts视频,但内容全被加密。要解密的前提条件是必须先有正确的key文件,然后对.ts文件进行AES-128解密,还原成.mp4视频。 以往的做法是用FFMpeg命令: 现在可以用Python代码直接解密。 非常感谢这篇文章给我参考的灵感: 流媒体m3u8爬虫研究 - Echocipher 首先Python要

    2024年02月02日
    浏览(58)
  • ffmpeg ts列表合并为mp4

    操作系统:ubuntu 注意事项: 1.ts文件顺序必须正确,也就是下一帧的dst和pst要比上一帧的大,否则会报错 2.codecpar-codec_tag要设置为0,否则报错Tag [27][0][0][0] incompatible with output codec id ‘27’ (avc1) 3.设置output的max_streams数目,默认是1000,超过此数目就会报错

    2024年02月13日
    浏览(53)
  • 如何使用 FFmpeg对视频进行转码和切片

    如何使用 FFmpeg 对视频进行转码和切片 FFmpeg 是一款强大的开源多媒体处理工具,能够处理音频、视频、字幕等多种多媒体数据。下面将介绍如何使用 FFmpeg 进行视频转码和切片。 视频转码 视频转码是指将视频从一种编码格式转换为另一种编码格式。使用 FFmpeg 进行视频转码的

    2024年04月22日
    浏览(61)
  • 下载盗版网站视频并将.ts视频文件合并

    我们发现index.m3u8中储存着所有的.ts文件名在拼接上前面固定的url就可以获取到.ts文件

    2024年02月07日
    浏览(83)
  • python合并ts视频(三种方法)

    相关python代码: 目前在使用该方法时还没发现ts文件数量限制 该方法的缺陷: 文件夹下的所有ts文件都会被合并 文件夹下的ts文件的命名必须按照字母顺序排列, 否则合并文件后视频片段会产生混乱.(注意:名为‘10.ts’的文件的顺序会排在名为\\\'9.ts\\\'文件的前面,也就是说,

    2024年02月05日
    浏览(49)
  • 哔哩哔哩视频合并 B站缓存视频合并 安卓版 音视频合并 基于ffmpeg

    此软件是为了帮助网友合并哔哩哔哩缓存视频,Android上将bilibili缓存视频合并导出为mp4,你可以将它理解为一个专用的格式工厂,并不涉及破解相关内容,仅仅用于学习技术交流,严禁用于商业用途,如有侵权请联系我删档,对你带来困惑和不便我深感抱歉。 合并(导出)B站缓

    2024年02月02日
    浏览(73)
  • 使用ffmpeg将多个TS视频拼接成mp4视频

    点击下面网址下载对应版本安装 https://ffmpeg.org/download.html   下载好之后添加环境变量 添加成功之后在cmd窗口输入ffmpeg,显示如下结果则为成功  合并单个文件或者少量文件时,通过以下命令合并 多个ts视频可以编辑一个txt文档,file.txt 注意:这里必须是单引号,双引号会报错 进入

    2024年02月11日
    浏览(84)
  • ffmpeg@音视频工具@音视频合并

    FFmpeg中文网 (github.net.cn) FFmpeg 是一款强大的开源跨平台音视频处理工具集,它包含了一系列命令行工具以及用于音频和视频编码解码、格式转换、抓取、流化等功能的库。FFmpeg 支持多种视频、音频格式和编解码器,能够进行音视频的压缩、封装、转码、分割、合并、过滤、抓

    2024年03月17日
    浏览(79)
  • 利用FFmpeg合并音频和视频

    一、FFmpeg 多个音频合并的2种方法 多个mp3文件合并成一个mp3文件 一种方法是连接到一起 ffmpeg64.exe -i \\\"concat:123.mp3|124.mp3\\\" -acodec copy output.mp3 解释:-i代表输入参数     contact:123.mp3|124.mp3代表着需要连接到一起的音频文件                  -acodec copy  output.mp3 重新编码并复制到

    2024年04月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包