비디오 파일에서 이미지를 추출하는 방법?


답변:


20

함께 시도 ffmpeg

ffmpeg -i inputfile.avi -r 1 -f image2 image-%3d.jpeg

여기 에서 설명서를 읽을 수 있습니다

  • -i inputfile.avi 비디오 입력 파일은 inputfile.avi입니다.
  • -r 1비디오의 초당 이미지를 추출하십시오. 초당 얻고 자하는 이미지 수를 해당 숫자로 바꿉니다.
  • -f image2 프로그램이 파일 확장자에서 출력 이미지 형식을 선택하려고 시도하므로 강제로 이미지 출력 형식을 사용하지 않을 수 있습니다.
  • image-%3d.jpeg 출력 이미지 이름 인 % 3d는 출력으로 생성 된 이미지에 3 개의 10 진수 시퀀스 번호가 있음을 나타냅니다. 숫자가 0으로 채워지는 경우 % 03d 만 사용하면됩니다.

1
귀하의 연결이 끊어진 것 같습니다
Nolwennig

@Nolwennig. 이전 문서와 같이 구체적이지는 않지만 최소한 공식 문서이며 수정되지 않았습니다.
YoMismo

3
-r 1초당 이미지 수입니다. 따라서 60ips 또는 24의 경우 -r 24입니다. 그리고 추출을 제한하려면 -ss [start] -t [duration]입니다.
Sandburg

감사합니다, Xubuntu
Indacochea Wachín에서

3

방금 Windows 32-2.1.2 Rincewind 용 최신 VLC 버전을 다운로드했으며이 작업을 수행하는 것이 좋습니다.

단계 :

1-도구> 환경 설정을 클릭하고 단일 선택 단추를 모두 클릭하십시오.

2-아래로 스크롤하여 비디오 옆의 + 기호를 클릭하여 확장

3-아래로 스크롤하여 장면 필터를 클릭하고 디렉토리 경로 접두사 (프레임을 저장하려는 위치)에 대한 정보를 입력하십시오. 저장을 클릭하지 마십시오.

4-위로 스크롤하여 필터 아래에서 비디오라는 단어를 클릭하십시오.

5-장면 비디오 필터의 확인란을 클릭하고 저장을 클릭하십시오.

6-비디오를 열고 실행하면 .png가 저장됩니다.

7-프레임 저장을 중지하려면 5 단계로 돌아가 장면 비디오 필터를 선택 취소하십시오. 설정을 찾을 위치를 알고 있으면 정말 쉽습니다.


0

이 도움을 바랍니다

#!/bin/bash
source_dir="."
output_dir="."
input_file_types=(avi wmv flv mkv mpg mp4)
output_file_type="jpg"

convert() {
        echo "" | ffmpeg -ss $ss -y -i "$in_file" -an -f image2 -vframes 1 "$output_dir/$out_file"
}

for input_file_types in "${input_file_types[@]}"
do

        find "$source_dir" -name "*.$input_file_types" -print0 | while IFS= read -r -d $'\0' in_file
        do
                echo "Processing…"
                echo ">Input  "$in_file
                # Replace the file type
                out_file=$(echo $in_file|sed "s/\(.*\.\)$input_file_types/\1$output_file_type/g")
            echo ">Output "$out_file

# get video duration
#    fulltime=`ffmpeg -i "$in_file" 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//`;
#    hour=`echo $fulltime | cut -d ':' -f 1`;
#    minute=`echo $fulltime | cut -d ':' -f 2`;
#    second=`echo $fulltime | cut -d ':' -f 3 | cut -d '.' -f 1`;

#    seconds=`expr 3600 \* $hour + 60 \* $minute + $second`;
#    ss=`expr $seconds / 2`; # from the middle of video



    ss=`expr 10`; # from the 10sec of video



    # Convert the file
                convert "$in_file" "$out_file"

                if [ $? != 0 ]
                then
                    echo "$in_file had problems" >> ffmpeg-errors.log
                fi

                echo ">Finished "$out_file "\n\n"
        done
done

0

VLC에서 마우스 오른쪽 단추로 비디오, 스냅 샷 찍기 가능


예를 들어 장면의 각 프레임에 대해 이미지가 필요한 경우 약간의 노동 집약적입니다.
Kusalananda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.