본문 바로가기

프로그래밍 언어/Python

동영상 변환 방법 : HEVC (H.265) 코덱을 H.264로 변환

동영상 변환 방법

아이폰에서 찍은 동영상을 다른 형식으로 변환하려면 다음 명령을 사용할 수 있습니다:

  1. HEVC (H.265) 코덱을 H.264로 변환:
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4

이 명령은 input.mp4 파일을 읽어, 비디오 코덱을 H.264로, 오디오 코덱을 AAC로 설정하여 output.mp4 파일로 변환합니다.

 

 

동영상 파일이 변환이 필요한지 여부를 판별하는 방법은 몇 가지 있습니다. 여기서는 FFmpeg와 FFprobe를 사용하여 동영상 파일의 코덱 정보를 확인하고, 필요한 경우 변환하는 방법을 설명하겠습니다.

FFprobe 사용

FFprobe는 FFmpeg 패키지에 포함된 유틸리티로, 미디어 파일의 정보를 분석하는 데 사용됩니다. 이를 통해 동영상 파일의 코덱 정보를 확인할 수 있습니다.

  1. FFprobe로 동영상 파일 정보 확인:
ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 input.mp4
  1. 이 명령은 동영상 스트림의 코덱 이름을 출력합니다.
  2. 코덱 확인 및 조건에 따른 변환: Python 스크립트를 사용하여 동영상 파일을 자동으로 확인하고, 변환이 필요한 경우 변환을 수행할 수 있습니다.

Python 스크립트 예제

다음은 FFprobe와 FFmpeg를 사용하여 동영상 파일의 코덱을 확인하고, H.265(HEVC) 코덱을 H.264로 변환하는 Python 스크립트 예제입니다.

import subprocess
import os

def get_video_codec(file_path):
    result = subprocess.run(
        ['ffprobe', '-v', 'error', '-select_streams', 'v:0', '-show_entries', 'stream=codec_name', '-of', 'default=noprint_wrappers=1:nokey=1', file_path],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True
    )
    return result.stdout.strip()

def convert_video(input_path, output_path):
    subprocess.run(['ffmpeg', '-i', input_path, '-c:v', 'libx264', '-c:a', 'aac', output_path])

def process_videos(input_directory):
    for filename in os.listdir(input_directory):
        if filename.endswith('.mp4'):
            input_path = os.path.join(input_directory, filename)
            output_path = os.path.join(input_directory, f'converted_{filename}')
            
            codec = get_video_codec(input_path)
            print(f'File: {filename}, Codec: {codec}')
            
            if codec == 'hevc':
                print(f'Converting {filename}...')
                convert_video(input_path, output_path)
                print(f'Converted {filename} to {output_path}')
            else:
                print(f'No conversion needed for {filename}')

# 예제 사용법
input_directory = 'path_to_your_video_directory'
process_videos(input_directory)

스크립트 설명

  1. get_video_codec 함수는 FFprobe를 사용하여 동영상 파일의 비디오 코덱을 반환합니다.
  2. convert_video 함수는 FFmpeg를 사용하여 동영상을 H.264 코덱으로 변환합니다.
  3. process_videos 함수는 주어진 디렉터리에서 모든 MP4 파일을 찾아 코덱을 확인하고, 필요할 경우 변환합니다.

이 스크립트를 사용하면 특정 디렉터리 내의 모든 동영상 파일을 확인하고, H.265(HEVC) 코덱을 사용하는 동영상 파일을 자동으로 변환할 수 있습니다.

반응형