自媒体创作利器:混剪如何快速找到对应画面?(多套方案)

2023-12-14 09:05:40 浏览数 (1)

大家好,我是安果!

对于从事影视剪辑的同学来说,能快速通过一个画面找到原片中出现的位置,将大大提升视频剪辑的效率

本篇文章将聊聊常见可行的方案

1、以图搜索

我们对影视画面进行截图后,直接将图片上传到下面这些网站,网站会返回截图相关的结果(比如:片名、演员名、位于第几集等)

PS:针对国内影片,建议使用国内搜索引擎

百度识图:

https://graph.baidu.com/pcpage/index?tpl_from=pc

搜狗识图:

https://pic.sogou.com/

360 搜图:

https://image.so.com/

Google 搜图:

https://www.google.com/imghp?hl=zh-CN&authuser=0&ogbl

Yandex 搜图:

https://yandex.com/images

当然也可以直接安装 Chrome 插件 search-by-image,它支持图片右键直接搜索

https://chromewebstore.google.com/detail/search-by-image/cnojnbdhbhnkbcieeekonklommdnndci?hl=zh-CN&utm_source=ext_sidebar

2、台词

可以使用下面网站,通过台词或描述内容进行检索

33 搜帧:

https://fse.agilestudio.cn/

33 台词:

https://33.agilestudio.cn/

找台词:

https://zhaotaici.cn/

3、视频/音频转文字(Whisper)

Whisper 是用于自动语音识别的预训练模型,它同样出自于 OpenAI,支持中文,模型的准确性和稳健性接近人类

Whisper 可以通过在线和离线使用

在线可以参考下面链接

https://platform.openai.com/docs/guides/speech-to-text

下面介绍一下离线使用方案

PS:离线使用对本地显卡有一定要求,具体可以参考官网

首先,在本地安装 ffmpeg

https://ffmpeg.org/

然后安装依赖包

代码语言:javascript复制
# 安装依赖
# 注意:python版本必须3.8以上
pip3 install openai-whisper

接着加载模型后,传入本地音频或视频文件后,一段时间后就能返回模型分析后的结果

PS:如果本地不包含模型,会在线下载对应模型

代码语言:javascript复制
import whisper
import time

def get_content():
    # 加载模型
    whisper_model = whisper.load_model("large")
    # result = whisper_model.transcribe(r"./temp.WAV")
    # print(", ".join([i["text"] for i in result["segments"] if i is not None]))

    result = whisper_model.transcribe(r"./01.mp4")
    print(result)

if __name__ == '__main__':
    get_content()

4、Whisper.cpp

Whisper 对硬件要求很高,拿一段长视频实际体验下来,发现效率极低

这里推荐 Whisper.cpp 这个项目,它提供了 GUI 和 CLI 两种使用方式

项目地址:

https://github.com/Const-me/Whisper

在 Releases 下载页面,我们下载最新版本 cli.zip 文件并解压到本地

然后,在下面链接下载一个模型到本地

https://huggingface.co/ggerganov/whisper.cpp/tree/main

这样我们通过命令就可以将视频或音频转为文字了

代码语言:javascript复制
# 模型:ggml-medium.bin
# 音频转文字(中文)
main.exe -l zh -otxt -m ggml-medium.bin "temp.WAV" --prompt "简体中文

# 视频转文字(中文)
main.exe -l zh -otxt -m ggml-medium.bin "temp.mp4" --prompt "简体中文

当然为了提升效率,也可以编写脚本后,配置 alias 变量快速使用

注意:为了保证最后生成的文字为简体中文,这里通过参数 --prompt 指定为简体中文

代码语言:javascript复制
import os
import fnmatch, shutil

# 使用whisper.cpp项目将当前目录下【所有视频语音】转为文字

# 获取当前目录下所有的视频文件
def find_video_files(path):
    video_extensions = ['*.mp4', '*.mkv', '*.avi', '*.flv', '*.mov']
    video_files = []

    for root, dirs, files in os.walk(path):
        for extension in video_extensions:
            for filename in fnmatch.filter(files, extension):
                video_files.append(os.path.join(root, filename))

    return video_files


# 1、获取所有视频文件
current_directory = os.getcwd()
video_files = find_video_files(current_directory)

# 2、遍历,将视频语音使用whisper转为中文
for video_file in video_files:
    # 转换命令
    command = f'D:\ai\cli\main.exe -l zh -otxt -m D:\ai\ggml-medium.bin -f {video_file} --prompt "简体中文"'
    os.system(command)

以 windows 添加 alias 为例

编辑 Microsoft.PowerShell_profile.ps1 文件,以函数的形式添加一个 alias,然后重启 PowerShell 即可

代码语言:javascript复制
# SP文件目录:C:UserswnnDocumentsWindowsPowerShellMicrosoft.PowerShell_profile.ps1

Function zzm(){
    python D:\ai\main.py
}

5、其他方案

除了上面这些方案,我们也可以将原片提前上传到飞书妙记或阿里的通义听悟,提前生成台词及关联关系;然后通过台词检索寻找对应画面

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

0 人点赞