两个图像之间的视频变形,FFMPEG/Minterpolate

2024-05-22

我正在尝试在 Ubuntu Linux 上的 bash 脚本中使用两个帧(png 图像)和 ffmpeg 的 minterpolate 过滤器制作一个快速且简单的变形视频。目的是稍后使用变形作为不同视频编辑器中相似视频之间的过渡。

它适用于 3 个以上的帧/图像,但是仅使用 2 帧/图像失败。

首先是有效的代码:3 帧

这是使用三个 1080p png 文件:

test01_01.png test01_02.png test01_03.png

input01="test01_%02d.png"

ffmpeg -y -fflags +genpts -r 30 -i $input01 -vf "setpts=100*PTS,minterpolate=fps=24:scd=none" -pix_fmt yuv420p "test01.mp4"

这需要一些处理时间,然后创建一个 414kb、大约三秒的 mp4 视频,该视频的变形从第一帧开始,变形到第二帧,然后变形到第三帧。

失败的代码:2帧

这仅使用两个相同的 1080p png 文件:

test02_01.png test02_02.png

input01="test02_%02d.png"

ffmpeg -y -fflags +genpts -r 30 -i $input01 -vf "setpts=100*PTS,minterpolate=fps=24:scd=none" -pix_fmt yuv420p "test02.mp4"

第262章byte损坏的 mp4 文件。除了帧数之外没有任何区别。

我尝试过的事情:

我已经用 ffmpeg 的 Ubuntu 默认存储库版本以及静态 64 位 5.0 和 git-20220108-amd64 版本尝试过此操作,所有结果都相同。

我也尝试过使用 2 帧 mp4 文件作为输入,结果相同。

想法?

这是 ffmpeg 中的错误还是我做错了什么?

我也愿意接受任何使用其他 Linux 兼容软件创建类似变形的建议。

感谢您的任何见解!


它没有记录,但看起来像minterpolate过滤器需要至少 3 个输入帧。

我们可以使用 5 个输入帧创建更长的视频,并保留相关部分。

为了获得与仅使用两个输入图像应用 Minterpolate 滤波器相同的输出,我们可以使用以下解决方案:

  • 定义两个输入流:
    Set test02_01.png作为第一个输入和test02_02.png作为第二个输入。
  • 每个图像至少循环两次,使用-stream_loop
    (test02_01.png重复两次并且test02_02.png重复3次)。
  • 将输入帧速率设置为 0.3 fps(相当于-r 30 and setpts=100*PTS).
    输入参数如下:-r 0.3 -stream_loop 1 -i test02_01.png -r 0.3 -stream_loop 2 -i test02_02.png.
  • 使用连接两个输入流concat filter.
  • Apply minterpolatefiler 到串联输出。
    上述阶段的输出是一个开头有几个冗余秒、结尾有几个冗余秒的视频。
  • Apply trim用于保留相关部分的过滤器。
    Add setpts=PTS-STARTPTS最后(按照使用修剪过滤器时的建议)。

建议命令:

ffmpeg -y -r 0.3 -stream_loop 1 -i test02_01.png -r 0.3 -stream_loop 2 -i test02_02.png -filter_complex "[0][1]concat=n=2:v=1:a=0[v];[v]minterpolate=fps=24:scd=none,trim=3:7,setpts=PTS-STARTPTS" -pix_fmt yuv420p test02.mp4

Sample output (as animate GIF):
enter image description here


test02_01.png:
enter image description here

test02_02.png:
enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

两个图像之间的视频变形,FFMPEG/Minterpolate 的相关文章

  • 为 Android 编译时显示 FFMPEG 错误

    我正在尝试将 ffmpeg 添加到我的 android 项目中 我使用的是 ubuntu 14 04 操作系统 我正在关注此链接 Link https software intel com en us android blogs 2013
  • 图像分析-光纤识别

    我是图像分析新手 您知道如何以仅获取纤维的方式对该图像进行二值化吗 我尝试过不同的阈值技术等 但没有成功 我不介意应该使用什么工具 但我更喜欢 NET or Matlab PS 我不知道该把答案放在哪里 所以我把它放在StackOverfl
  • 以 Gif 形式在 Android 上以编程方式共享 WhatsApp 视频

    我如何将 mp4 视频文件转换为 WhatsApp gif 文件 在应用程序 UI 中简单显示为 gif 但内部是特定的 mp4 格式 以在 android 共享意图中使用 并被 Whatsapp 聊天应用程序识别为此类媒体 我搜索了很多
  • 无法在 PIL 中对 16 位 TIF 应用图像滤镜

    我尝试使用 python 应用图像过滤器PIL http www pythonware com products pil 代码很简单 im Image open fnImage im im filter ImageFilter BLUR 此
  • 将循环视频添加到声音 ffmpeg

    我开始使用 ffmpeg 这是我的第一个疑问 我有一个声音文件 example mp3 持续时间 1 分钟 我想添加一个循环视频 example mp4 x 秒持续时间 在这种情况下 我想生成 1 分钟的 mp4 视频并循环该视频 3 次
  • iOS11视觉框架映射所有人脸特征点

    我正在使用视觉框架并使用以下代码获取所有里程碑点 if let allFaceLandmarks landmarks allPoints print allFaceLandmarks 但无法找到这些点的映射 例如右眼的索引号 寻找相同的东西
  • ffmpeg 命令行,用于使用 Windows 7 从 Decklink 卡捕获(和录制)720p 音频和视频

    我正在尝试使用 Windows 7 720p 从 blackmagic Decklink 捕获卡捕获音频和视频 但我似乎无法正确获取 ffmpeg 命令行设置 ffmpeg list devices true f dshow i 虚拟 ds
  • 使用 mp4box 直播破折号内容

    我正在尝试直播H 264内容到HTML5使用媒体源扩展 API 下面的方法效果很好 ffmpeg i rtsp 10 50 1 29 media video1 vcodec copy f mp4 reset timestamps 1 mov
  • 用于 C++ 中图像分析的 OpenCV 二进制图像掩模

    我正在尝试分析一些图像 这些图像的外部周围有很多噪声 但内部有一个清晰的圆形中心 中心是我感兴趣的部分 但外部噪声正在影响我对图像的二进制阈值处理 为了忽略噪音 我尝试设置一个已知中心位置和半径的圆形蒙版 从而使该圆之外的所有像素都更改为黑
  • 边缘检测和透明度

    使用在一致背景下拍摄的服装图像 我希望使图像中除服装之外的所有像素都透明 解决这个问题的最佳方法是什么 我研究了这个常见的算法和开源库opencv http opencv willowgarage com wiki 除了自己动手或使用 op
  • C#中图像制作视频的工作方式

    有人有已知的可靠方法来从一系列图像文件创建视频吗 在你因为我在发布问题之前没有寻找答案而对我进行批评之前 以及在你发出诸如 使用 FFMPEG 之类的简单消息之前 请阅读此消息的其余部分 我正在尝试从一系列图像 jpg bmp 等 创建视频
  • 如何创建媒体文件的稳定校验和?

    如何仅创建媒体数据的校验和而不包含元数据以获得媒体文件的稳定标识 最好是使用支持多种格式的库的跨平台方法 例如vlc ffmpeg 或 mplayer 媒体文件应该是常见格式的音频和视频 图像也很好 好吧 可能已经晚了 11 年才得到答案
  • Pyinstaller“无法执行脚本 pyi_rth_pkgres”并且缺少软件包

    这是我第一次在这里发布问题 因为我的大部分问题已经被其他人回答了 我正在 python 中开发 GUI 应用程序 并尝试使用 pyinstaller 将其打包到单个文件夹和 exe 中 以便于移植 目前 我使用 Windows 10 和 a
  • 如何使用Java OpenCV

    我正在使用图像处理开始我的最后一年项目 并希望完成类似的事情this http www youtube com watch v EPai5f2sWaA 它是人体和物体检测的结合 我真的很想用 Java 来做 因为我在 C 方面的经验很少 I
  • 对同色像素块的边界进行着色

    我有一张有 5 种不同颜色的图像 在这种情况下 随机生成 w h 40 27 img Image new RGB w h pixels img load available colors r 255 13 18 b 72 64 255 y
  • 图像的 EMGU/OpenCV FFT 未产生预期结果

    我正在尝试使用 EMGU 可视化图像的 FFT 这是我正在处理的图像 这是预期的结果 Here s what I get 这是我的代码 Image
  • FFMPEG:尝试从图像和音频创建 facebook 流时出现转换失败错误?

    目标是从图像和音频文件创建 Facebook 流 这是我的命令 ffmpeg re y loop 1 f image2 i maxresdefault jpg i audio loop mp3 ar 44100 b a 128k vcode
  • ffmpeg 找不到 vcodec h264

    我是 ffmpeg 的新手 正在 Windows 上使用它 我尝试使用 H 264 vcodec h264 转换 avi 文件 收到此错误 未知编码器 h264 使用 acodec 的 mp3 也会出现 未知编码器 错误 有人可以帮我解决这
  • GrabCut - bgdModel 和 fgdModel 为空 - 断言错误

    我正在尝试使用 OpenCV2 1 C 中的 GrabCut 算法进行图像分割 这是我的代码 Mat rgbWorkImage imread argv 1 Mat mask mask Scalar 0 Mat bgdModel fgdMod
  • 自动跟踪算法

    我正在尝试写一个simple跟踪例程来跟踪电影中的某些点 本质上我有一系列 100 帧长的电影 在黑暗背景上显示一些亮点 我每帧有大约 100 150 个点 它们在电影的过程中移动 我想跟踪它们 所以我正在寻找一些有效的 但可能不会过度实施

随机推荐