Xubuntu 16.04에서 비디오의 특정 시간에서 이미지를 추출하려면 어떻게해야합니까?


8

커맨드 라인 옵션을 찾고 있습니다.

예를 들어, video sample-video.mp4가 있고 sample-image.jpg00:00:26 시간에 비디오에서 이미지 파일을 생성하려는 경우 어떤 명령을 제공해야합니까?

또한 명령의 모든 인수의 기능이 무엇인지 자세히 설명 할 수 있으면 매우 도움이됩니다.


2
이 질문 에 따르면 그 대답 ffmpeg은 출력 파일 이름을 지원하는 것으로 보입니다.
IQV

답변:


8

다음을 사용할 수 있습니다 mplayer( mplayer기본적으로 설치되지 않은 패키지 에서).

mplayer -vo jpeg -ss 00:00:26 -frames 1 sample-video.mp4

파일 00000001.jpg이름이 바뀌므로 파일이 만들어 집니다. 내가 아는 한 파일 이름을 지정할 방법이 없습니다.

-vo jpegJPEG 출력, 원하는 -ss 00:00:26위치를 찾고, -frames 1한 프레임을 처리 한 다음 종료하는 것을 의미합니다.


1 개 이상의 프레임을 얻는 이점은 무엇입니까? 그것들이 사본이거나 각 프레임이 1 초마다 다릅니 까?
Sonevol

더 많은 프레임에서 생성 된 이미지는 1 초마다 다릅니다. 정확한 값은 비디오에 따라 다릅니다.
Florian Diesch

5
@Sonevol 정확히 0시 0분 26초에서 프레임은하지 않을 수 있습니다 정확히 당신이 원하는. 0:00:25와 0:00:27 사이의 ~ 50 프레임 (또는 0:00:26 표시 주위의 3-4 프레임)을 선택한 다음 가장 좋은 것을 선택하기 위해 해당 프레임을 탐색 할 수 있습니다.
xDaizu

1
@FlorianDiesch -vo png:z=9압축 수준을 지정하는 -z 설정을 사용하여 png로 출력 할 수도 있습니다. jpeg의 경우 다음 품질 설정을 추가 할 수도 있습니다 -vo jpeg:quality=100. 그러나 당신의 대답은 이미 훌륭합니다 :)
andrew.46

13

ffmpeg 를 사용할 수 있습니다

ffmpeg -loglevel quiet -ss 26 -i sample-video.mp4  -t 1 -f image2 anyfilename.jpeg
  • -loglevel 에 logoutput 설정 조용 는 FFmpeg은 매우 수다스러운 때문에
  • -ss is seek (초 단위, 즉 스냅 샷을 만들려는 위치)
  • -i 입력 비디오 파일
  • 스냅 샷의 -t 기간 (초)
  • -f 파일 유형

jpeg 출력의 제어 품질 -q:v <linear integer 1-10>또는 해상도 와 같은 옵션을 사용하여 재생할 수도 있습니다 -s 480x300.

여기에 더 많은 아이디어


VLC 방법

cvlc sample-video.mp4 --start-time=26 --run-time=1 --rate=1 --video-filter=scene --vout=dummy --aout=dummy  --scene-ratio=24 --scene-prefix=sample-image --scene-replace vlc://quit
  • cvlc- 명령 행이기 때문에 창을 열지 않기를 바랍니다. 또한 이것은 X11없이 실행할 수 있음을 의미합니다.

  • --start-time = 26- 초 단위로 스냅 샷의 정확한 위치입니다

  • --run-time = 1- 비디오가 몇 초 안에 "재생"될지 시간입니다. 이 초의 스크린 샷을 만들기 위해 1 초 동안 재생합니다.
  • 스크린 샷을 찍을 때 --rate = 1 이것은 기본적으로 "1 초마다"를 의미하며 파일이 길면 60 초마다 또는 5 분마다 스크린 샷을 찍는 데 유용합니다.
  • --video-filter = 장면 VLC에게 스크린 샷을 찍으라고합니다
  • --vout = 더미 X11에서 비디오 출력이 필요하지 않습니다.
  • --aout = 더미 오디오 출력 없음, 필요하지 않습니다
  • --scene-ratio = 24 VLC에 초당 약 24 프레임이 있다고 알려줍니다
  • --scene-prefix = sample-image 스크린 샷의 파일 이름
  • --scene-replace 는 스크린 샷 sample-image.png과 같은 파일을 현재 스크린 샷 으로 바꿉니다 . 이것을 생략하면 VLC가 스크린 샷 번호를 매기기 시작합니다
  • 우리가 끝나면 VLC 종료 VLC 종료

여기에 완전한 문서


chatty은 무슨 뜻인가요? 그리고 26 초에 스냅 샷을 원합니다. 따라서 왜 타임 프레임을 -t로 지정해야합니까? 비디오가 아닌 이미지를 촬영하고 있습니다.
Sonevol

3
ffmpeg는 현재 버전, 설치 유형 및 입력 비디오 파일에 대한 정보와 같이이 명령을 사용하여 40 줄 이상의 로그 출력을 인쇄하므로 "채팅 (Chatty)"은 사용자에게 흥미롭지 않습니다. 목적에 따라 "-t 1"을 생략 할 수 있습니다. 기본값은 1 초 또는 그 일부인 것 같습니다. 스크린 샷에 적합합니다. 좋은 차이점은 출력 파일 이름을 정의하고 품질 / 해상도 등을 조정할 수 있다는 것입니다.
Robert Riedl
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.