使用ffmpeg-python剪切(裁剪/修剪)视频的一部分。


介绍

当我想使用python播放视频时,我很难进行一个部分的剪切(裁剪/修剪),但是
这是一条备忘录,因为使用ffmpeg-python效果很好。

环境

操作系统:MacOS Mojave 10.14.4
python:3.6
ffmpeg-python:0.2.0

制备

安装ffmpeg-python。

1
$ pip install ffmpeg-python

cropvideo.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import ffmpeg

upper_left_x = XX
# 切り取りたい区画のx座標(px)
upper_left_y = XX
# 切り取りたい区画のy座標(px)
width = XX
# 切り取りたい区画の幅(px)
height = XX
# 切り取りたい区画の高さ(px)

stream = ffmpeg.input('sample.mp4')
# sample.mp4に切り取りたい動画を入れる

stream = ffmpeg.crop(stream, upper_left_x, upper_left_y, width, height)

stream = ffmpeg.output(stream, 'cropoutput.mp4')
# cropoutput.mp4が切り取った動画で出てきます。

ffmpeg.run(stream, overwrite_output=True)
# overwrite_output=Trueとすることで同じファイル名の動画がすでにあっても上書きします。

对于

upper_left_x,upper_left_y,宽度和高度,您需要指定要用px剪切的部分。

当您说"我不知道px的位置!"时

您可以通过从视频中取出静止图像并将其显示在GIMP中进行视觉检查。

首先,从视频中取出一帧静止图像。

getimage.py

1
2
3
4
5
6
7
8
9
10
11
12
13
import ffmpeg

tpoint = XX
# 取り出したい静止画の時間(tpoint = 10 なら動画の10秒時点の静止画が取れる)

imagename = 'hogehoge.jpg'
#取り出したい静止画のファイル名を指定

stream = ffmpeg.input('sample.mp4')
# sample.mp4に切り取りたい動画を入れる

stream = ffmpeg.output(stream, imagename, ss=tpoint, vframes=1, f='image2')
ffmpeg.run(stream)

用GIMP打开提取的静止图像。

スクリーンショット 2019-09-06 7.17.18.jpg
首先,将鼠标光标移到要剪切的部分的左上方。 (光标未显示在图像中,但通常指向红色圆圈。)
然后," x坐标,y坐标"将以px的形式显示在GIMP屏幕的左下方。
这些坐标对应于upper_left_x和upper_left_y。

スクリーンショット 2019-09-06 7.17.40.jpg
接下来,将鼠标光标移至要剪切的部分的右下角。
同样,检查GIMP屏幕左下方的坐标,然后
宽度=右下x坐标-左上x坐标
高度=右下y坐标-左上y坐标
如果是这样,那没关系。

结论

通过上述步骤,我可以剪切出一部分视频。
当前的缺点是剪辑的视频的质量似乎低于原始质量。

如果您有任何疑问,"您可以做得更好!",如果您能告诉我,我将不胜感激。