zoukankan      html  css  js  c++  java
  • ffmpeg视频精准剪切1

    1. 导言
    ffmepg剪切视频,很方便,但是也有很大缺陷: 
    (1)剪切时间点不精确 
    (2)有时剪切的视频开头有黑屏
    造成这些问题的原因是ffmpeg无法seek到非关键帧上。 
    一下本文通过一些参数配置尽可能地减轻以上问题
    2. 基本剪切方法
    ffmpeg -i test.mp4 -ss 10 -t 15 -codec copy cut.mp4
    1
    参数分析:
    -i : source 
    -ss:start time 
    -t :duration 
    -c :video,audio codec
    时间格式:
    x秒
    HOURS:MM:SS.MICROSECONDS
    可以设置输出视频的编码格式
    -vcodec xxx 
    -acodec xxx
    把-ss, -t参数放在-i参数之后,是对输出文件执行的seek操作 
    输入文件会逐帧解码,直到-ss设置的时间点为止,这么操作会很慢,虽然时间点是准确的,但是很容易出现黑屏问题。
    3. 参数优化
    (1)将-ss, -t 参数放在-i参数之前
    ffmpeg -ss 10 -t 15 -i test.mp4 -codec copy cut.mp4
    1
    对输入文件执行seek操作,会seek到-ss设置的时间点前面的关键帧上。 
    时间不精确,但是不会出现黑屏
    (2)accurate_seek 
    剪切时间更加精确
    ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy cut.mp4
    1
    PS:accurate_seek必须放在-i参数之前
    (3)avoid_negative_ts 
    如果编码格式采用的copy 最好加上 -avoid_negative_ts 1参数
    ffmpeg -ss 10 -t 15 -accurate_seek -i test.mp4 -codec copy -avoid_negative_ts 1 cut.mp4
    1
    4. 参考文献
    [1] http://trac.ffmpeg.org/wiki/Seeking
    --------------------- 
    作者:微岩 
    来源:CSDN 
    原文:https://blog.csdn.net/matrix_laboratory/article/details/53157383 
    版权声明:本文为博主原创文章,转载请附上博文链接!
  • 相关阅读:
    大一励志的我,现在已经大三了
    Jenkins+K8s实现持续集成
    Jenkins搭建自动化测试环境
    软件开发式样书 6
    软件开发式样书 5
    软件开发式样书 4
    软件开发式样书 3
    软件开发式样书 2
    软件开发式样书 1
    Git学习笔记
  • 原文地址:https://www.cnblogs.com/hmms/p/10614082.html
Copyright © 2011-2022 走看看