ffmpeg-python을 사용하여 동영상의 한 구획을 잘라냅니다 (자르기 자르기).
4938 단어 영화파이썬ffmpeg-pythonffmpeg
소개
파이썬으로 동영상을 괴롭히고 싶을 때, 한 구획을 잘라 (크롭핑 트리밍) 하는데 어려웠습니다만,
ffmpeg-python을 사용하여 잘 작동했기 때문에 메모입니다.
환경
OS:MacOS Mojave 10.14.4
파이썬 : 3.6
ffmpeg-python:0.2.0
준비
ffmpeg-python을 설치합니다.
$ pip install ffmpeg-python
코드
cropvideo.pyimport 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, width, height는 각각 잘라내고 싶은 곳을 스스로 px로 지정할 필요가 있습니다.
「px의 위치 왠지 모르겠어!」라고 하는 경우
동영상에서 정지영상을 꺼내 김프로 표시하여 육안으로 확인할 수 있습니다.
먼저 동영상에서 정지영상을 1프레임 꺼냅니다.
getimage.pyimport 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)
꺼낸 정지영상을 김프로 엽니다.

그리고 먼저 잘라내고 싶은 부분의 왼쪽 상단에 마우스 커서를 맞춥니다. (이미지에 커서가 표시되지 않지만 대략 적색 원이 붙어 있으면 고라엔을 가리키고 있습니다.)
그러면 김프 화면 왼쪽 하단에 "x 좌표, y 좌표"가 px로 표시됩니다.
이 좌표는 upper_left_x, upper_left_y에 해당합니다.

그런 다음 잘라내려는 부분의 오른쪽 하단에 마우스 커서를 놓습니다.
마찬가지로 김프 화면 왼쪽 하단의 좌표를 확인하고,
width = 오른쪽 하단의 x 좌표 - 왼쪽 상단의 x 좌표
height = 오른쪽 하단의 y 좌표 - 왼쪽 상단의 y 좌표
그렇다면 OK입니다.
결론
상기의 순서를 밟는 것으로 동영상의 한 구획의 잘라낼 수 있었습니다만,
잘라낸 동영상의 화질이 원래의 화질보다 낮다고 생각하는 것이 현재 난점입니다.
「더 잘 할 수 있겠지!」라고 하는 것이 있으면, 가르쳐 주실 수 있으면 기쁩니다.
Reference
이 문제에 관하여(ffmpeg-python을 사용하여 동영상의 한 구획을 잘라냅니다 (자르기 자르기).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nomi3/items/7708f40c95b6a8ed13b6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
OS:MacOS Mojave 10.14.4
파이썬 : 3.6
ffmpeg-python:0.2.0
준비
ffmpeg-python을 설치합니다.
$ pip install ffmpeg-python
코드
cropvideo.pyimport 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, width, height는 각각 잘라내고 싶은 곳을 스스로 px로 지정할 필요가 있습니다.
「px의 위치 왠지 모르겠어!」라고 하는 경우
동영상에서 정지영상을 꺼내 김프로 표시하여 육안으로 확인할 수 있습니다.
먼저 동영상에서 정지영상을 1프레임 꺼냅니다.
getimage.pyimport 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)
꺼낸 정지영상을 김프로 엽니다.

그리고 먼저 잘라내고 싶은 부분의 왼쪽 상단에 마우스 커서를 맞춥니다. (이미지에 커서가 표시되지 않지만 대략 적색 원이 붙어 있으면 고라엔을 가리키고 있습니다.)
그러면 김프 화면 왼쪽 하단에 "x 좌표, y 좌표"가 px로 표시됩니다.
이 좌표는 upper_left_x, upper_left_y에 해당합니다.

그런 다음 잘라내려는 부분의 오른쪽 하단에 마우스 커서를 놓습니다.
마찬가지로 김프 화면 왼쪽 하단의 좌표를 확인하고,
width = 오른쪽 하단의 x 좌표 - 왼쪽 상단의 x 좌표
height = 오른쪽 하단의 y 좌표 - 왼쪽 상단의 y 좌표
그렇다면 OK입니다.
결론
상기의 순서를 밟는 것으로 동영상의 한 구획의 잘라낼 수 있었습니다만,
잘라낸 동영상의 화질이 원래의 화질보다 낮다고 생각하는 것이 현재 난점입니다.
「더 잘 할 수 있겠지!」라고 하는 것이 있으면, 가르쳐 주실 수 있으면 기쁩니다.
Reference
이 문제에 관하여(ffmpeg-python을 사용하여 동영상의 한 구획을 잘라냅니다 (자르기 자르기).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nomi3/items/7708f40c95b6a8ed13b6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ pip install ffmpeg-python
cropvideo.py
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, width, height는 각각 잘라내고 싶은 곳을 스스로 px로 지정할 필요가 있습니다.
「px의 위치 왠지 모르겠어!」라고 하는 경우
동영상에서 정지영상을 꺼내 김프로 표시하여 육안으로 확인할 수 있습니다.
먼저 동영상에서 정지영상을 1프레임 꺼냅니다.
getimage.pyimport 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)
꺼낸 정지영상을 김프로 엽니다.

그리고 먼저 잘라내고 싶은 부분의 왼쪽 상단에 마우스 커서를 맞춥니다. (이미지에 커서가 표시되지 않지만 대략 적색 원이 붙어 있으면 고라엔을 가리키고 있습니다.)
그러면 김프 화면 왼쪽 하단에 "x 좌표, y 좌표"가 px로 표시됩니다.
이 좌표는 upper_left_x, upper_left_y에 해당합니다.

그런 다음 잘라내려는 부분의 오른쪽 하단에 마우스 커서를 놓습니다.
마찬가지로 김프 화면 왼쪽 하단의 좌표를 확인하고,
width = 오른쪽 하단의 x 좌표 - 왼쪽 상단의 x 좌표
height = 오른쪽 하단의 y 좌표 - 왼쪽 상단의 y 좌표
그렇다면 OK입니다.
결론
상기의 순서를 밟는 것으로 동영상의 한 구획의 잘라낼 수 있었습니다만,
잘라낸 동영상의 화질이 원래의 화질보다 낮다고 생각하는 것이 현재 난점입니다.
「더 잘 할 수 있겠지!」라고 하는 것이 있으면, 가르쳐 주실 수 있으면 기쁩니다.
Reference
이 문제에 관하여(ffmpeg-python을 사용하여 동영상의 한 구획을 잘라냅니다 (자르기 자르기).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nomi3/items/7708f40c95b6a8ed13b6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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)
상기의 순서를 밟는 것으로 동영상의 한 구획의 잘라낼 수 있었습니다만,
잘라낸 동영상의 화질이 원래의 화질보다 낮다고 생각하는 것이 현재 난점입니다.
「더 잘 할 수 있겠지!」라고 하는 것이 있으면, 가르쳐 주실 수 있으면 기쁩니다.
Reference
이 문제에 관하여(ffmpeg-python을 사용하여 동영상의 한 구획을 잘라냅니다 (자르기 자르기).), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nomi3/items/7708f40c95b6a8ed13b6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)