该方法适用于像我这样习惯把所有素材预处理成小片段再导入AE/PR合成的情况,主要目的是减小工作相关文件的体积,不想为了个别片段而关联上整集视频文件。而且预处理过的片段也比原始长视频更方便索引时间,方便后期处理。(

作为一个AE党(不怎么会PR),在这之前PR都只被我用来预处理素材,因为它能比较方便地制作子剪辑然后批量导出。久而久之感觉这样有点大材小用,为了纯粹剪切片段而需要装一个PR和Media Encoder(批量导出非得装这个),但是AE用来处理平均20分钟以上的长视频那叫一个难受,而且要批量导出还是得装ME(C盘很小,固态很贵)。想到之前用ffmpeg把MKV转MP4,就想着这东西拿来剪点片段应该⑧成问题吧,而且这东西就那么几十MB大小,看着就舒服。

FFMPEG这东西下过来在windows下就是一个exe文件,你可以通过cmd或powershell来给它喂参数跑起来。比如之前的将mkv转成mp4就可以在cmd下运行:

ffmpeg-i input.mkv -vcodec copy -acodec aac -b:a 320k output.mp4

解释一下就是,输入了一个文件叫input.mkv,视频编码video code是copy (复制),音频编码audio code是aac压缩,音频码率audio bit rate不超过320k,然后生成的文件是output.mp4,这样一操作就把一个mkv文件给转成了mp4文件,视频流直接复制,不会有太大的计算量,由于mp4不支持flac所以音频得压缩成aac。音频的计算量相比压视频来说小得多,所以这种方法能把mkv比较方便地转成mp4文件。

然后就是在ffmpeg的官方文档里找有没有剪切的参数想都⑧用想肯定有:通过 -ss hh:mm:ss.ms来指定输入视频的剪辑起始点,通过-t hh:mm:ss.ms来指定从起始点开始剪多长的片段,于是你可以输入

ffmpeg-ss 1:23.456 -i input.mkv -t 0:10.000 -vcodec copy -acodec aac -b:a 320k output.mp4

这句话能够从input.mkv的1分23.456秒开始,截取10秒长度的片段输出到output.mp4中(特别要注意-ss参数要放在-i前面,也就是要先指定起始时间,再指定输入文件,否则ffmpeg的起始时间索引会受到输入文件所包含的关键帧的影响 没懂?这就对了)。然后在踩了许多坑之后,最后定出了这样一个参数能比较正确地工作:

ffmpeg-ss 1:23.456 -i input.mkv -t 0:10.000 -f mp4 -pix_fmt yuv420p -c:v libx264 -crf 14 -c:a aac -b:a 320koutput.mp4 -hide_banner -y

参数依次是:起始时间,输入文件名,片段长度,输出格式,像素排列方式,视频编码,码率(数字越小码率越高),音频压缩方式,音频码率限制,输出文件名,隐藏ffmpeg参数,输入“y“(输出文件名已存在时这个y能默认选择覆盖已有文件)。

这里选择把视频也用x264重新压一遍的原因是对于x265的视频copy出来的片段在播放器里正常,在ae里有些情况下会出现错帧的情况,一律拍成x264啥事没有。

现在已经能剪出一个想要的片段了,如果你只是偶尔想剪一段东西但又不想开PR,到这里就可以不用接着看了。如果想大量地剪的话,一条一条命令手打感觉难顶,批处理又写不来,只能整个python勉强过过日子。最后弄下来,记录剪辑时间点的文件内容就长这样,第一行是输入视频的名字(带格式后缀),后面就是起始时间,截止时间,片段名称依次排列下去,中间拿空格隔开就行。因为ffmpeg接收的是起始时间和片段长度,所以还得自己算一下时间差:

时间格式是小时:分钟:秒.毫秒,小时可以打也可以不打,分钟一定要打,毫秒可以不打,没怎么想着处理各种乱七八糟的情况,别瞎弄一般不会出事出事别找我。ep01.txt

我是拿potplayer看番的,一边看一边就在一旁记时间,potplayer里面可以用D和F快捷键来选择上一帧和下一帧,这样可以看到毫秒,把前面的时间记下来就行(不是特别在意精确时间的话可以直接看进度条上的时间)

Potplayer

看完一集后得到记录时间点的txt文件,起个好名字比如ep01.txt表示第一集(还可以带上番名),然后拿脚本跑一下(注意输入视频和脚本和ffmpeg.exe要在一个目录下,或者你把ffmpeg.exe所在目录添加到环境变量中,这样就只要复制一下脚本):

python ffmpeg.py -i ep01.txt

然后最后得到的片段名字就会是ep01-片段0.mp4,ep01-片段1.mp4,ep01-片段2.mp4。

这样剪东西我自己倒是觉得挺方便的,如果懂python的人还可以改一改加上指定输出目录、一个txt处理多个输入视频啥的,我现在用着挺舒服就也不想加了。

总结一下,想要做到用小体积软件进行简单的视频剪切操作,可以尝试一下这种方法,但毕竟是歪门邪道,而且带有强烈的个人习惯,⑧要太认真。

脚本放在:https://github.com/Leonana69/MKV2MP4

快开学了,坑还没填完

python ffmpeg剪辑视频_FFMPEG剪辑大法相关推荐

  1. python ffmpeg 获取视频信息_ffmpeg获取视频信息

    php使用ffmpeg获取视频信息可以获取到视频的分辨率.文件大小.播放时长.编码格式.视频格式.音频编码.音频采样频率.等..... 废话不多说,直接上代码.../** * Name: ffmpeg ...

  2. 七十行代码教你使用 python ffmpeg 压缩视频,再也不用担心视频过大了

    前期准备 最近要压缩视频,然后发现一些压缩视频的工具要是收费,要么有水印,完全不符合要求啊.正当我发愁的时候突然想到,去年的时候接触过 ffmpeg ,可以用python ffmpeg 来压缩视频啊, ...

  3. python+ffmpeg切割视频

    什么是ffmpeg 1.1 简介 FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包 ...

  4. 基于python+ffmpeg的视频并发直播压力测试

    通过python与ffmpeg结合使用,可生成进行视频点播.直播的压力测试脚本.可支持不同类型的视频流,比如rtmp或者hls形式. 通过如下方式执行脚本:python multiRealPlay.p ...

  5. java ffmpeg 合并视频_ffmpeg 合并拼接 mp4视频

    因此,首先需要把mp4格式的文件转成ts格式,不过要注意的是,我们要拼接mp4文件,而不是被转码的mp4文件,一次这里转换只需要改变封装格式,音频流和视频流直接复制就行.转换方法: ffmpeg -i ...

  6. 制作数据集(一):将视频数据剪辑为图片数据

    概要 由于我自己的项目缺少合适的数据集,所以我需要自己制作数据集,即我需要自己完成从用摄像头录制视频到制作图片数据集的整个过程.所以这篇博客旨在记录我将视频数据剪辑为图片数据的过程. 先声明我的设备配 ...

  7. 会声会影2023最新版本剪辑视频的方法和步骤

    想要学剪辑,剪辑软件是基础.如果大家是零基础的话,建议大家选择一款入门级的剪辑软件,比如说会声会影.这款软件功能强大.操作简单,而且会声会影中文网站首页有很多剪辑教程供大家学习参考.会声会影在用户的陪 ...

  8. php作视频剪切,视频无损剪辑软件,高清视频不转码直接剪切

    剪切视频是常见的视频编辑之一,很简单,网上N多的剪辑软件,随意下个就能搞定,但要知道的是很多视频剪切转码软件会牺牲到视频的清晰度来将文件压缩转码输出的.那有没什么好的方法,不必重新编码,直接分割.剪切 ...

  9. 分享方法剪辑视频,将竖屏视频转为横屏视频的同时虚化边框效果

    视频现在是信息的另一种表达方式,视频经过剪辑会有很多效果,今天小编在这里分享一个剪辑技巧,剪辑视频将竖屏转为横屏,并且虚化视频边框,剪辑出来的效果的非常好看的,有兴趣朋友可以接着往下看. 第一步,运行 ...

  10. 竖屏视频如何操作转为横屏视频,剪辑视频的教程分享

    在网上冲浪的时候视频有竖屏也有横屏,根据视频的内容不同可能会选择不同的播放方式,那么如何有多个竖屏视频需要转为横屏视频该怎么操作呢?不知道怎么操作朋友可以一起来看看,分享具体的操作方法. 第一步,运行 ...

最新文章

  1. java-第十一章-类的无参方法-计算器运算
  2. WebX Qamp;A
  3. su - oracle和su oracle有什么区别
  4. 一图看懂云栖大会「云原生」重磅发布
  5. Sql Server之旅——终点站 nolock引发的三级事件的一些思考
  6. 判断用户名和密码是否正确java_facebook中如何判断用户名和密码是否正确
  7. 具有IOctl的简单字符驱动
  8. with pdo mysql_如何在PHP下开启PDO MySQL的扩展
  9. base64 pdf解码无法打开_微信小程序使用echarts导出PDF
  10. 拓端tecdat|R语言ARMA GARCH COPULA模型拟合股票收益率时间序列和模拟可视化
  11. 【LeetCode】图解 904. 水果成篮
  12. 电脑误格式化的数据怎么恢复,误格式化数据恢复教程
  13. 关于高性能的MIMO技术的实现方法介绍
  14. 自动化测试设计模之PO(PageObject)
  15. Python爬取并分析 201865 条《隐秘的角落》弹幕
  16. 如何批量重命名文件?
  17. 如何移植 Arx/ Dbx 模块为 Crx/DBX 模块来支持 AutoCAD 易(值得一看)
  18. 信捷服务器Z相信号,USR-G781连接信捷PLC ,使用透传云服务器进行远程上传程序
  19. 2021年高处安装、维护、拆除考试资料及高处安装、维护、拆除理论考试
  20. Android webview 自动登陆新浪微博实现(原理)

热门文章

  1. 华为服务器找不到阵列卡_DELL 服务器R230 加载阵列卡驱动安装Server 2012R2操作系统...
  2. 手机远程锁定计算机,手机怎么控制电脑 手机远程控制电脑关机方法
  3. 计算机极差全距符号,极差相对值的计算公式
  4. 怎样培养数据分析的能力
  5. 计算机网络-自顶向下方法笔记-滑动窗口协议
  6. silvaco 学习笔记 2——自定义材料
  7. 苹果手机投屏到pc电脑
  8. 北航计算机学院考研专硕,北京航空航天大学计算机学院2020考研拟录取及未录取名单...
  9. android 百度地图的经度纬度问题
  10. 微信小程序开发:微信小程序里面集成百度地图的步骤