找回密码
 立即注册
查看: 1403|回复: 2

关于自动化重命名压制完的动画集数

  • TA的每日心情
    无聊
    2024-9-4 13:52
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    21

    主题

    83

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    53396
    天空龙 发表于 2023-7-17 08:38:53 | 显示全部楼层 |阅读模式
    目前压制完重命名方法一般都是用bdinfo和vlc播放器看顺序,再一个一个命名,遇到年番和m2ts不按顺序排列的就很麻烦

    所以在想有什么方法能批量重命名,
    似乎GitHub没搜到类似项目,感觉最简单的思路还是从文件本身入手

    请确保已经安装了必要的库(例如os 和subprocess)。

    1. ```python
    2. import os
    3. import re
    4. import subprocess

    5. # 获取视频文件
    6. videos = os.sys.argv[1:]

    7. # 对每个视频文件执行以下操作
    8. for video in videos:
    9.     # 获取视频文件名
    10.     video_name = os.path.basename(video)

    11.     # 从文件名中截取“第 ”和“ 话”中间的两位数字
    12.     if re.search("第(\d{2})話", video_name):
    13.         episode = re.search("第(\d{2})話", video_name).group(1)
    14.     else:
    15.         raise Exception("无法从文件名中获取集数")
    16.         continue

    17.     # 使用ffmpeg对视频隔3秒截图,输出文件名格式为集数_四位数字.png
    18.     cmd = f'ffmpeg -i "{video}" -vf "fps=1/3,scale=910:512" -ss 2:10 -to 00:21:00 "F:\\cocotemp1\\new4\\{episode}_%04d.png"'
    19.     subprocess.run(cmd, shell=True)
    20. ```
    复制代码


    注意:在运行以上Python脚本前,请确保已经安装了ffmpeg并且它已经在您的系统路径中。在Python中使用ffmpeg是通过调用命令行完成的,所以需要ffmpeg被正确安装和配置。

    另外,这段代码预计你会在命令行中提供视频文件作为参数,类似于运行`python script.py video1.mp4 video2.mp4` 这样的方式。如果你需要在脚本中直接指定文件,你可以替换 `videos = os.sys.argv[1:]` 这一行来直接包含你的文件名。


    大致思路是用FFmpeg隔3秒截一张图,输出集数,这个方法要求动画标题本身就有集数,没有的的就没办法
    目前有这样的思路,
    先用FFmpeg截图发现标题,再安装配合日文OCR库,OCR出标题,再链接对应的wiki,找到标题集数那个表格,进行比对,因为OCR有错误率,所以60%匹配即为匹配成功,成功后对视频文件进行重命名,一般是集数和标题,以上需要视频处理,图片处理,OCR和爬虫,感觉比较复杂,不知道大家有没有对应的思路方法
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2024-9-4 13:52
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    21

    主题

    83

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    53396
    天空龙  楼主| 发表于 2023-7-17 09:46:00 | 显示全部楼层
    https://github.com/search?q=Anime++rename&type=repositories
    基本都是有集数整理的名字的
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2024-9-4 13:52
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    21

    主题

    83

    回帖

    0

    VC币

    白金会员

    Rank: 12Rank: 12Rank: 12

    积分
    53396
    天空龙  楼主| 发表于 2023-7-17 09:52:34 | 显示全部楼层
    用gpt写了下,感觉不能直接用
    1. 请确保已经安装了必要的库,例如os, subprocess, opencv-python (cv2), pytesseract, wikipedia-api 和 bs4.
    2. 如前面所说,ffmpeg应该被正确安装和配置。
    3. Pytesseract只是一个python接口用于与已安装的Tesseract OCR引擎通信。你需要在你的机器上安装Tesseract并添加它到你的系统路径中。
    4. 为了支持日语OCR,你需要安装对应的训练数据。
    5. Wikipedia API也需要额外的安装和设置。
    6.你需要使用 BeautifulSoup(一个Python库)来解析维基百科页面并提取表格数据。
    1. ```python
    2. # 获取维基百科页面内容并解析标题
    3. wiki_html = Wikipedia('ja').page(wiki_url).html()
    4. soup = BeautifulSoup(wiki_html, 'html.parser')

    5. # 找到'各話リスト'对应的表格
    6. wiki_table = None
    7. for header in soup.find_all(['h2', 'h3']):
    8.     if '各話リスト' in header.text:
    9.         sibling = header.find_next_sibling()
    10.         while sibling and wiki_table is None:
    11.             if sibling.name == 'table':
    12.                 wiki_table = sibling
    13.             sibling = sibling.find_next_sibling()

    14. # 提取表格中的集数和标题
    15. wiki_episodes = []
    16. if wiki_table is not None:
    17.     for row in wiki_table.tbody.find_all('tr')[1:]:  # Skip the table header
    18.         columns = row.find_all('td')
    19.         episode = columns[0].get_text().strip()
    20.         title = columns[1].get_text().strip()
    21.         wiki_episodes.append((episode, title))
    22. ```

    23. 然后,在每个视频文件循环中,你可以将OCR文本与这些维基百科标题进行匹配:

    24. ```python
    25. # 将OCR文本与维基百科标题进行匹配
    26. matched_title = next((title for ep, title in wiki_episodes if ep == episode and title in ocr_text), None)

    27. if matched_title is not None:
    28.     # 如果找到匹配,将视频文件重命名
    29.     new_video_name = f'{episode}_{matched_title}{os.path.splitext(video)[1]}'
    30.     os.rename(video, os.path.join(video_dir, new_video_name))
    31. else:
    32.     print(f'无法匹配视频的名字: {video_name}')
    33. ```
    复制代码

    请注意,这只是一个基本示例,具体实现可能需要根据实际情况进行调整。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表