ber*_*ieb 1 python ffmpeg video-editing melt
我希望以一种简单、自动化和高效的方式使用一些短过渡(最好是交叉淡入淡出)来加入一组视频剪辑(带音频)。
IE:
ClipA ---> ClipB --> ClipC --> ClipD
[aaaaaaaa][bbbbbbbb][cccccccc][dddddddd]
(--> indicate crossfades, not to scale!)
Run Code Online (Sandbox Code Playgroud)
澄清:
ffmpeg,但不太知名的工具,如melt肯定出线,我愿意去探索像MoviePy新的视野)python/shell的/ etc脚本目前我正在使用python并ffmpeg使用基于文本文件中的时间码的流复制参数(非常快)来切割 Matroska/h264/aac 中已经存在的视频文件。然后melt使用短亮度(交叉淡入淡出)转换(由于重新编码整个序列而非常慢)一个接一个地将这些剪辑串起来。
在我看来,这些长视频剪辑中只有几秒钟需要处理和重新编码——过渡本身。其余的可以复制。是否有一种已经存在的/直观的方法来做到这一点?我天真的方法是将剪辑进一步切成子剪辑,使用melt创建过渡,并使用concat过滤器将混乱粘合在一起。
例如:
ClipA1 ClipA2 ClipB1 ClipB2 ClipB3 ClipC1 ClipC2 ClipC3 ClipD1 Clip D2
[aaaaaaa] + [a][b] + [bbbbbb] + [b][c] + [cccccc] + [c][d] + [ddddddd]
(+ indicates concat-ing of subclips; [x][y] indicates a short xfade from x to y)
Run Code Online (Sandbox Code Playgroud)
不过,我沉默寡言关机充电什么可能是一个傻瓜的差事,因为我预料melt/ffmpeg周围切口和音频同步的时间-相关陷阱; 我不想因为 I 帧放置或你有什么而错过视频或音频的部分。另外,我有一种感觉,我不是第一个遇到这个问题的人,所以我很好奇那些比我更聪明的人是如何解决这个问题的——正如我所说,我的解决方案往往很幼稚!
希望这已经很清楚了。为阅读干杯,并提前致谢!
就上下文而言,我的目的是将未经编辑的直播视频游戏画面减少为有趣/“有用”的视频;这消除了加载东西、整理连接问题等无聊的毛病。但它也可以概括为突出显示,显示进展的蒙太奇。由于理论上每次出现新镜头时都会出现这种情况,因此我对以最有效(主动最懒惰)的方式进行处理非常感兴趣。
小智 7
我没有时间测试它,但是如果您想使用 MoviePy,这应该可以工作:
from moviepy.editor import *
clips = [ VideoFileClip("vid1.mp4"),
VideoFileClip("vid2.mp4"),
VideoFileClip("vid3.mp4"), ... ]
fade_duration = 1 # 1-second fade-in for each clip
clips = [clip.crossfadein(fade_duration) for clip in clips]
final_clip = concatenate_videoclips(clips, padding = -fade_duration)
# You can write any format, in any quality.
final_clip.write_videofile("final.mp4", bitrate="5000k")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3926 次 |
| 最近记录: |