这是一个使用 Python3 编写的脚本,用于获取视频信息并将其写入 Excel 文件。脚本使用 FFmpeg 库获取视频信息,使用 openpyxl 库写入 Excel 文件。请注意,此脚本仅适用于 Windows 操作系统。

import os
import openpyxl
from openpyxl.utils import get_column_letter
from openpyxl.styles import Font
import subprocess

# 设置 FFmpeg 路径
FFMPEG_PATH = r'C:\ffmpeg\bin\ffmpeg.exe'

# 设置要处理的视频文件夹路径和 Excel 文件路径
VIDEO_FOLDER = r'C:\videos'
EXCEL_FILE = r'C:\video_info.xlsx'

# 定义要获取的视频信息
VIDEO_INFO = {
    'Filename': '%filename%',
    'Duration': '%duration%',
    'Codec': '%codec_name%',
    'Bitrate': '%bit_rate%',
    'Resolution': '%width%x%height%',
    'Frame Rate': '%avg_frame_rate%',
    'Audio Codec': '%audio_codec_name%',
    'Audio Bitrate': '%audio_bit_rate%',
    'Audio Channels': '%audio_channels%'
}

# 获取视频信息的命令
FFMPEG_CMD = [FFMPEG_PATH, '-i', '', '-hide_banner']

# 创建 Excel 文件并写入表头
wb = openpyxl.Workbook()
ws = wb.active
for col_num, header in enumerate(VIDEO_INFO.keys(), 1):
    col_letter = get_column_letter(col_num)
    cell = ws['{}1'.format(col_letter)]
    cell.value = header
    cell.font = Font(bold=True)

# 遍历视频文件夹并处理每个视频文件
for root, dirs, files in os.walk(VIDEO_FOLDER):
    for filename in files:
        if filename.endswith('.mp4') or filename.endswith('.avi') or filename.endswith('.mov'):
            # 构建获取视频信息的命令并执行
            filepath = os.path.join(root, filename)
            FFMPEG_CMD[2] = filepath
            result = subprocess.run(FFMPEG_CMD, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
            output = result.stderr

            # 解析输出,获取视频信息
            video_info = {}
            for key, value in VIDEO_INFO.items():
                start_index = output.find(value)
                end_index = output.find('\n', start_index)
                video_info[key] = output[start_index:end_index].replace(value, '').strip()

            # 将视频信息写入 Excel 文件
            row_num = ws.max_row + 1
            for col_num, info in enumerate(video_info.values(), 1):
                col_letter = get_column_letter(col_num)
                cell = ws['{}{}'.format(col_letter, row_num)]
                cell.value = info

# 保存 Excel 文件
wb.save(EXCEL_FILE)

print('视频信息已成功写入 Excel 文件。')

使用说明:

  1. 确保已安装 FFmpeg 和 openpyxl 库。
  2. FFMPEG_PATH, VIDEO_FOLDEREXCEL_FILE 替换为您自己的路径。
  3. 可以修改 VIDEO_INFO 字典,添加或删除要获取的视频信息。
  4. 脚本支持处理 MP4、AVI 和 MOV 格式的视频文件。

示例:

假设您有一个名为 videos 的文件夹,其中包含一些视频文件,您想将这些视频的信息写入 video_info.xlsx 文件。您需要将脚本中的 VIDEO_FOLDER 设置为 videos 文件夹的路径,将 EXCEL_FILE 设置为 video_info.xlsx 文件的路径。然后运行脚本,脚本会自动获取视频信息并写入 Excel 文件。

注意事项:

  • 此脚本仅适用于 Windows 操作系统。
  • 如果要获取其他视频信息,请在 VIDEO_INFO 字典中添加相应的键值对,并在 FFMPEG_CMD 命令中添加相应的参数。
  • 脚本默认使用 ffmpeg.exe 的默认参数获取视频信息,您可以根据需要修改参数。
  • 脚本使用 subprocess.run 函数执行 FFmpeg 命令,如果出现错误,请检查 FFmpeg 的安装路径和命令参数。
  • 如果您遇到问题,请参考 FFmpeg 和 openpyxl 的官方文档。
Python3 视频信息统计并写入 Excel 脚本

原文地址: https://www.cveoy.top/t/topic/mzXN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录