使用 FFmpeg 在特定时间将一个视频叠加在另一个视频上

2024-04-12

我正在尝试将一个视频与另一个视频叠加。我按照OP发布的原始命令进行操作here https://stackoverflow.com/questions/35269387/ffmpeg-overlay-one-video-onto-another-video。它有效,但它覆盖了从时间 0 开始的视频:

ffmpeg -i 720480.mp4 -i sdbug.mov -filter_complex "[0:0][1:0]overlay[out]" -shortest -map [out] -map 0:1 -pix_fmt yuv420p -c:a copy -c:v libx264 -crf 18  new.mp4 

我尝试了指定时间的正确答案,但它对我不起作用:1)叠加层大约在第二秒开始12、2) 叠加完成后不播放视频。

ffmpeg -i 720480.mp4 -i sdbug.mov -filter_complex "[1:v]setpts=PTS+10/TB[a]; [0:v][a]overlay=enable=gte(t\,5):shortest=1[out]" -map [out] -map 0:a -c:v libx264 -crf 18 -pix_fmt yuv420p -c:a copy new.mp4

最近有什么变化吗FFmpeg?!为什么它不起作用?

这是该命令的输出(它完成得非常快):

ffmpeg version N-92906-g54109b1d14 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 8.2.1 (GCC) 20181201
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libmfx --enable-amf --enable-ffnvcodec --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt
  libavutil      56. 25.100 / 56. 25.100
  libavcodec     58. 43.100 / 58. 43.100
  libavformat    58. 25.100 / 58. 25.100
  libavdevice    58.  6.101 / 58.  6.101
  libavfilter     7. 46.101 /  7. 46.101
  libswscale      5.  4.100 /  5.  4.100
  libswresample   3.  4.100 /  3.  4.100
  libpostproc    55.  4.100 / 55.  4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '720480.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 2018-07-26T09:23:16.000000Z
  Duration: 00:01:50.17, start: 0.000000, bitrate: 3181 kb/s
    Stream #0:0: Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, smpte170m/smpte170m/bt709), 720x480 [SAR 8:9 DAR 4:3], 2785 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : VideoHandler
      timecode        : 00:59:55:12
    Stream #0:1: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:2: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:3: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:4: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:5: Data: none (tmcd / 0x64636D74) (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : TimecodeMediaHandler
      timecode        : 00:59:55:12
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'sdbug.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2018-08-29T14:50:13.000000Z
  Duration: 00:00:10.01, start: 0.000000, bitrate: 10504 kb/s
    Stream #1:0(eng): Video: qtrle (rle  / 0x20656C72), bgra(progressive), 720x486, 9666 kb/s, SAR 109:120 DAR 109:81, 29.97 fps, 29.97 tbr, 30k tbn, 30k tbc (default)
    Metadata:
      creation_time   : 2018-08-29T14:50:13.000000Z
      handler_name    : Apple Video Media Handler
      encoder         : Animation
      timecode        : 00:00:00;00
    Stream #1:1(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2018-08-29T14:50:13.000000Z
      handler_name    : Time Code Media Handler
      timecode        : 00:00:00;00
Stream mapping:
  Stream #0:0 (h264) -> overlay:main
  Stream #1:0 (qtrle) -> setpts
  overlay -> Stream #0:0 (libx264)
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
  Stream #0:3 -> #0:3 (copy)
  Stream #0:4 -> #0:4 (copy)
Press [q] to stop, [?] for help
[libx264 @ 000002b902a3f480] using SAR=8/9
[libx264 @ 000002b902a3f480] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
[libx264 @ 000002b902a3f480] profile High, level 3.0, 4:2:0, 8-bit
[libx264 @ 000002b902a3f480] 264 - core 157 r2935 545de2f - H.264/MPEG-4 AVC codec - Copyleft 2003-2018 - http://www.videolan.org/x264.html - options: cabac=1 ref=3 deblock=1:0:0 analyse=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=18.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Output #0, mp4, to 'new.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.25.100
    Stream #0:0: Video: h264 (libx264) (avc1 / 0x31637661), yuv420p, 720x480 [SAR 8:9 DAR 4:3], q=-1--1, 29.97 fps, 30k tbn, 29.97 tbc (default)
    Metadata:
      encoder         : Lavc58.43.100 libx264
    Side data:
      cpb: bitrate max/min/avg: 0/0/0 buffer size: 0 vbv_delay: -1
    Stream #0:1: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:2: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:3: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
    Stream #0:4: Audio: aac (HE-AAC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 98 kb/s (default)
    Metadata:
      creation_time   : 2018-07-26T09:23:16.000000Z
      handler_name    : SoundHandler
frame=  599 fps= 92 q=-1.0 Lsize=   11556kB time=00:01:50.01 bitrate= 860.5kbits/s speed=16.8x
video:6173kB audio:5288kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.828358%
[libx264 @ 000002b902a3f480] frame I:8     Avg QP:13.24  size: 44134
[libx264 @ 000002b902a3f480] frame P:174   Avg QP:18.62  size: 20916
[libx264 @ 000002b902a3f480] frame B:417   Avg QP:21.31  size:  5583
[libx264 @ 000002b902a3f480] consecutive B-frames:  6.0%  1.7%  5.5% 86.8%
[libx264 @ 000002b902a3f480] mb I  I16..4: 15.9% 58.9% 25.2%
[libx264 @ 000002b902a3f480] mb P  I16..4:  1.4% 13.6%  4.2%  P16..4: 36.6% 22.8% 12.3%  0.0%  0.0%    skip: 9.0%
[libx264 @ 000002b902a3f480] mb B  I16..4:  0.1%  0.9%  0.3%  B16..8: 46.4% 10.6%  2.9%  direct: 5.5%  skip:33.3%  L0:53.4% L1:36.9% BI: 9.7%
[libx264 @ 000002b902a3f480] 8x8 transform intra:68.5% inter:65.1%
[libx264 @ 000002b902a3f480] coded y,uvDC,uvAC intra: 77.5% 89.5% 77.2% inter: 26.8% 48.1% 10.1%
[libx264 @ 000002b902a3f480] i16 v,h,dc,p: 50% 13% 13% 23%
[libx264 @ 000002b902a3f480] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 24% 12% 17%  6%  8% 10%  7%  9%  7%
[libx264 @ 000002b902a3f480] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 21% 13% 10%  7% 12% 11%  9%  9%  7%
[libx264 @ 000002b902a3f480] i8c dc,h,v,p: 51% 15% 24% 10%
[libx264 @ 000002b902a3f480] Weighted P-Frames: Y:5.2% UV:2.9%
[libx264 @ 000002b902a3f480] ref P L0: 60.1% 19.6% 15.8%  4.4%  0.1%
[libx264 @ 000002b902a3f480] ref B L0: 91.6%  7.3%  1.1%
[libx264 @ 000002b902a3f480] ref B L1: 97.2%  2.8%
[libx264 @ 000002b902a3f480] kb/s:2529.97

Use setpts https://ffmpeg.org/ffmpeg-filters.html#setpts_002c-asetpts添加延迟overlay https://ffmpeg.org/ffmpeg-filters.html#overlay:

ffmpeg -i main.mp4 -i overlay.mov -filter_complex "[1:v]setpts=PTS-STARTPTS+10/TB[ovr];[0:v][ovr]overlay=enable=gte(t\,10):eof_action=pass,format=yuv420p[vid]" -map "[vid]" -map 0:a? -c:v libx264 -crf 23 -c:a copy -movflags +faststart output.mp4
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 FFmpeg 在特定时间将一个视频叠加在另一个视频上 的相关文章

  • 使用 Python 从原始帧创建 MPEG4 视频文件

    我有一个原始视频帧源 我可以在 Python 中访问它 我想用它创建一个 MPEG4 视频 并带有 MP3 背景音乐 Python 中有哪些类型的工具和库可用于此类任务 最好我想要一个 API 我可以为其提供输出文件名 然后将各个帧作为 2
  • ffprobe/ffmpg 静音检测命令

    我正在研究流静音检测 它正在 ffmpeg 中执行以下命令 ffmpeg i http mystream com stream af silencedetect n 50dB d 0 5 f null 2 gt log txt 我想获得日志
  • Firefox:drawImage(视频)失败并显示 NS_ERROR_NOT_AVAILABLE:组件不可用

    尝试打电话drawImage with a video其来源是网络摄像头源似乎在 Firefox 中失败了NS ERROR NOT AVAILABLE Component is not available 我尝试等待视频标签触发的每个事件
  • 在您的应用程序 Swift 代码上启动 Youtube 频道

    我花了几天时间找到从我的应用程序打开 youtube 频道的 Swift 代码 但我根本找不到 有人可以帮助我吗 我需要 Swift 中的代码 Swift 3 和 iOS 10 的更新 好的 下面是如何在 Swift 3 中做到这一点 基本
  • 为 iOS6.0 ARMv7 处理器构建 FFMPEG 库

    WARNING 我刚刚被另一位用户告知 在 iOS 上使用 FFMPEG 存在一些法律问题 请在此处留下链接http multinc com 2009 08 24 compatibility Between the iphone app s
  • Safari - 视频加载速度太慢

    我在将视频添加到我的网站时遇到了一些麻烦 我使用这段代码
  • 从 Perl 守护程序运行时,为什么 FFMpeg 在五秒后停止?

    我用 Perl 编写了一个小守护程序 它调用 FFMpeg 对视频进行编码 但编码在 5 秒左右后停止 我用这段代码来启动它 my t echo ffmpeg command gt gt self gt FFMPEG OUTPUT my l
  • 为视频添加水印的命令

    我尝试在一个视频上添加水印 但 FFmpeg 命令不会执行 错误代码为 3037 我运行相同的代码来修剪视频 视频已成功修剪 因此没有问题inputpath or outputpath我也有ic watermark png在资产文件夹中 我
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • 视频作为网站背景? HTML 5

    我想使用视频作为背景 而不是自动拉伸到整个屏幕 背景 的图像 我还想旋转视频和图像 以便以任何顺序显示随机视频 图像 如果知道如何延迟视频播放 以便视频在网站加载后 30 秒只播放一次 那就太好了 thx 看看我的 jquery video
  • 如何使用ffmpeg从avi生成gif? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试使用以下命令将视频的一部分提取到动画 gif 中 ffmpeg i video avi t 5 out gif 它会生成一个 g
  • HTML5 视频结束倒计时

    我可以对 HTML5 视频的结束进行倒计时吗
  • 创建一个覆盖视图以覆盖整个活动,包括协调器布局中的工具栏

    我想创建一种覆盖类型的布局 以显示在包括工具栏在内的活动上方 我无法使用任何库来执行此操作 因为我编写的所有内容都是自定义的 我可以通过使用以下代码直接将视图添加到装饰视图来实现它 ViewGroup vg ViewGroup getWin
  • flash/flex:渐进式下载与 rtmp

    我试图理解并真正确定何时在 Flex flash 中使用渐进式下载与 rtmp 看来主要的一点是 rtmp 不与 http 一起提供服务 而渐进式下载则由 http 提供 由于它不是 rtmp 因此资源受到保护 因为无法从 swf 外部连接
  • 使用 UIActivityViewController 分享视频

    我正在尝试使用默认的苹果共享屏幕将视频分享到 Twitter 和 Facebook 等 我已经让它与图像一起使用 但我不知道如何更改它以与视频一起使用 提前致谢 这是我用来分享照片的代码 IBAction shareButtonPresse
  • Phonegap html5视频无法播放

    我正在尝试在 iPad 上的phonegap 应用程序中播放视频 该视频给了我错误 MEDIA ERR SRC NOT SUPPORTED 我尝试播放的视频不是本地的 当我在该视频上使用curl I 时 这是它带来的信息 HTTP 1 1
  • Android 上的 GStreamer

    谁能给我一些关于让 GStreamer 在 Android 上工作的提示 我以前从未使用过它 我想将它与 FFmpeg 一起使用 我已经编译了 FFmpeg 并且在 Android 上运行良好 我只是想使用 GStreamer 来帮助完成一
  • Flask 无法播放 html 中的视频

    我有一个 Flask 应用程序 应该在加载页面时播放视频 但它只显示在左上角 并且不会从视频的第一帧开始改变 我已经尝试将其插入 html 代码但它不起作用 extends base html block content
  • opencv 视频上的颜色阈值

    I am thresholding for a color range in an opencv video The goal is to seperate the B mode black and white information on
  • 视频流上的 TCP 与 UDP

    我刚从网络编程考试回来 他们问我们的问题之一是 如果您要传输视频 您会使用 TCP 还是 UDP 请解释一下存储视频和实时视频流 对于这个问题 他们只是希望得到一个简短的答案 TCP 用于存储视频 UDP 用于实时视频 但我在回家的路上想到

随机推荐

  • 为什么继承不能按照我认为应该的方式工作?

    我遇到了一些继承问题 因为我有一组相互关联的抽象类 需要一起重写它们才能创建客户端实现 理想情况下 我想做类似以下的事情 abstract class Animal public Leg GetLeg abstract class Leg
  • Excel VBA 检查插件是否已安装但未打开

    我有以下代码来检查所需的插件是否已安装 可用 然后再从当前上下文调用该插件中的脚本 Function IsAddinEnabled addinName as string As Boolean IsAddinEnabled True Dim
  • 资产目录与文件夹参考:何时使用其中之一?

    我可以将文件放入Assets xcassets或者我可以将文件放入文件夹引用 蓝色文件夹 中 我什么时候会选择其中之一而不是另一个 您可能应该使用资产目录 因为这就是 Apple 希望您今后使用的内容 工具将反映这一点 并且它们带来了许多优
  • 将 docker 根文件夹移动到新驱动器/分区

    我正在尝试将 var lib docker 文件夹从一个磁盘移动到另一个磁盘 因为它占用了太多空间 我不断遇到一些与权限相关的错误 根据这些问题 如何将 Docker 容器的映像移动到永久磁盘 https stackoverflow com
  • Spring-boot 启动 tomcat 上下文时出错。创建名称为“servletEndpointRegistrar”的 bean 时出错

    我是 spring boot 的新手 因此 在从 Spring Initializr 引导项目后 我尝试在 intellij 上运行它 但我在启动时遇到错误 以下是versions 爪哇 8春季启动 2 0 6我尝试过更改 spring b
  • 如何在字符串中用反斜杠美元替换美元字符

    我有一个像这样的字符串 String str aLnx5 bK C4EFg 我想换掉所有的美元 带有反斜杠美元的字符 为了得到 String expectedString aLnx5 bK C4EFg String str aLnx5 bK
  • 在ggplot2中绘制饼图

    我想绘制一个合适的饼图 然而 该网站之前的大部分问题都来自stat identity 如何绘制像图 2 这样的普通饼图 其角度与cut 我正在使用diamonds来自 ggplot2 的数据框 ggplot data diamonds ma
  • Go 中的 URL 生成器/查询生成器

    我感兴趣的是通过浏览器或 CLI 动态获取用户的参数作为输入 将这些参数传递给 REST API 调用 从而使用 Go 动态构建 URL 最终为我获取一些 JSON 数据 我想了解 Go 中的一些技术可以帮助我做到这一点 我认为一种理想的方
  • Ajax 调用提交处理程序 Jquery 验证

    我有一个具有多个选择下拉列表的表单name select 并且此表单是从 Jquery Validation 进行验证的 并且在成功验证后提交处理程序调用 Ajax 我想发送所有表单键和值也包括在数组表单中 这是我的代码 function
  • 如何删除核心数据持久存储

    我需要删除我的持久存储 逐个对象执行此操作并不实际 因为我有超过 100 000 个对象 我试过这个 IBAction resetDatabase id sender NSPersistentStore store persistentSt
  • 如何在C程序执行过程中显示自定义提示符?

    我正在尝试在 Linux 中使用 C 程序模拟终端 并且需要我的程序在程序执行时显示自定义提示 有没有办法使用我的 C 程序显示它 我总是可以尝试手动打印 My prompt 每一行 但我正在寻找更好的方法 另外 除了基本库之外 我无法使用
  • 那么为什么 i = ++i + 1 在 C++11 中定义良好呢?

    我见过other https stackoverflow com q 1860461 150634相似的问题 https stackoverflow com q 4336860 150634并阅读defect http www open s
  • JSON.parse 返回 [Object Object] 而不是值

    我的 API 返回 JSON 值 例如 UserName xxx Rolename yyy I need Username and RoleNamevalue seperatly 我尝试了 JSON parse 但它返回 Object Ob
  • 如何编辑表格数据 (ASP MVC)

    我需要能够在浏览器中编辑数据表 我在 MVCContrib 中看到有一个 HTML 帮助器来渲染表格 有用 但是如果我希望用户能够编辑该表怎么办 据我所知 这并没有帮助 解决这个问题的最佳方法是什么 传统的 FORM 里面有一个 TABLE
  • Azure IoT Hub设备消息结构和路由查询

    我使用了来自的 python 示例https learn microsoft com de de azure iot hub quickstart send telemetry python https learn microsoft co
  • 使用“VisualStudio.DTE.10.0”创建解决方案并添加项目

    我正在尝试创建 VS2010 解决方案并从独立应用程序 而不是加载项 添加项目 我可以创建 VS2010 的实例 但我无法确定如何正确创建项目 我只能找到如何使用 EnvDTE80 对象创建项目的示例 这稍后会导致异常 因为该项目文件的格式
  • Android Room 通用 DAO

    美好的一天 Stack 我正在开发一个使用 Android Room 1 0 0 Alpha 5 的 Android 项目 我面临的主要问题是每次我需要从 Room 调用其中一个 DAO 时 我都需要执行类似的操作这 活动 java App
  • 基本树概念:定义祖先

    祖先的定义是什么 更具体地说 E 会是 H 的祖先吗 或者更简单地说 F C A 是 H 的祖先 也许甚至是G 我只是想澄清这个简单的概念 E 不是 H 的祖先 它是uncle因为它是一个siblingF 的parent of H F C
  • R twitterR 包,尽管有限制但仍能获得关注者

    我一直在玩RtwitteR包 但还没有弄清楚如何实现一个系统来收集超过每小时最大数量的数据 Twitter 用户的关注者数量 我知道计划应该是收集最大数量 等待 X 时间 然后重复直到收集完所有内容 但是我该如何使用twitteR包裹 th
  • 使用 FFmpeg 在特定时间将一个视频叠加在另一个视频上

    我正在尝试将一个视频与另一个视频叠加 我按照OP发布的原始命令进行操作here https stackoverflow com questions 35269387 ffmpeg overlay one video onto another