下载NVIDIA官网的培训视频,生成中文字幕和PPT

下载NVIDIA官网的培训视频,生成中文字幕和PPT

背景 :想学习NVIDIA官网上的培训视频,但视频没有字幕,桑希望能离线观看,以下的操作步骤
涉及到的功能 :

1.m3u8视频的下载及转换

2.whisper的使用

3.ffmpeg字幕的使用

一.视频网站

二.如何获取视频的原始链接

三.下载视频的脚本【生成output.mp4】

bash 复制代码
#!/bin/bash

# 下载m3u8索引文件
wget https://vod.nvidia.cn/s/hls/p/2935771/sp/293577100/serveFlavor/entryId/1_kpe8g8f4/v/11/ev/8/flavorId/1_wo6zmhel/name/a.mp4/index.m3u8?__hdnea__=st=1718065127~exp=1718151527~acl=/s/hls/p/2935771/sp/293577100/serveFlavor/entryId/1_kpe8g8f4/v/11/ev/8/flavorId/1_*~hmac=5d616800c6cc5b3a48d8f11e2f7b7d2583f9fc419d3f463a6a287afc0caa1f7b -O index.m3u8

# 解析m3u8文件,下载所有的ts文件
for f in `cat index.m3u8 | grep "https"`
do
   name=`echo $f | sed -n 's/.*\(seg-[0-9]*-v[0-9]*-a[0-9]*\.ts\).*/\1/p'`
   echo $name
   wget $f -O $name   
done

# 替换m3u8中的文件名
sed  's/.*\(seg-[0-9]*-v[0-9]*-a[0-9]*\.ts\).*/\1/p' index.m3u8 > index_new.m3u8

# 安装ffmpeg
apt install ffmpeg -y

# 将m3u8转mp4
ffmpeg -i index_new.m3u8 -c:v libx264 -c:a aac output.mp4

四.安装whisper环境【语音识别生成英文字幕】

bash 复制代码
conda create -n whisper python=3.10
conda activate whisper
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install git+https://github.com/openai/whisper.git

五.下载whisper模型

bash 复制代码
wget https://openaipublic.azureedge.net/main/whisper/models/81f7c96c852ee8fc832187b0132e569d6c3065a3252ed18e56effd0b6a73e524/large-v2.pt -O large-v2.pt

六.生成英文字幕【输出merge.mp4】

bash 复制代码
#提取音频
ffmpeg -i output.mp4 -vn  output.mp3
#生成字幕
whisper --model_dir ./ --model large-v2 --output_format srt --language English output.mp3
#合并字幕
ffmpeg -i output.mp4 -vf subtitles=output.srt merge.mp4

七.提取场景变化的帧保存成图片序列【场景变化率大于0.1的帧】

bash 复制代码
mkdir extracted_frames
ffmpeg -i merge.mp4 -vf "select='gt(scene,0.1)'" -vsync vfr extracted_frames/frame_%04d.png

八.图片序列转PPT

bash 复制代码
pip install python-pptx
tee im2ppt.py <<-'EOF'
from pptx import Presentation
from pptx.util import Inches
import os

def create_ppt_from_frames(folder_path, output_pptx):
    prs = Presentation()
    image_files = [f for f in os.listdir(folder_path) if f.endswith('.png')]    
    for image_file in sorted(image_files):
        slide = prs.slides.add_slide(prs.slide_layouts[0])  # 使用空白幻灯片布局
        img_path = os.path.join(folder_path, image_file)
        slide.shapes.add_picture(img_path, Inches(1), Inches(1), width=Inches(8), height=Inches(4.5))
    prs.save(output_pptx)
if __name__ == "__main__":
    folder_path = "extracted_frames"
    output_pptx = "output_presentation.pptx"
    create_ppt_from_frames(folder_path, output_pptx)	
EOF	
python im2ppt.py
相关推荐
m0_614523553 小时前
普通视频怎么做多场景一镜到底:路线设计、逐段衔接与整体验收
人工智能·音视频
Pocker_Spades_A7 小时前
视频不用再一张张截图:ClipSketch AI 把关键画面转成漫画,还能顺手生成文案
人工智能·音视频
星辰徐哥7 小时前
本地视频预览别只自己看:把Remotion动效项目发给客户远程验收
docker·ai·node.js·html·音视频·react·remotion
镜像视界(浙江)科技有限公司8 小时前
《视频孪生之上:二维展示终结,三维空间计算重构城市逻辑》——跨摄像连续表达 × 三角测量厘米级定位 × 动态轨迹建模,构建新一代城市空间
大数据·人工智能·算法·矩阵·音视频·空间计算
你不是我我8 小时前
【AI 测评】想用自己的声音给视频配音?Index-TTS本地部署这样做
人工智能·音视频
Ulyanov11 小时前
AudioVision Pro:基于 PySide6 + sounddevice 的实时音频可视化播放器设计
python·算法·音视频
福大大架构师每日一题11 小时前
ComfyUI v0.34.0发布:视频、音频、三维、显存与合作节点全面更新
音视频
敲代码的嘎仔14 小时前
用 Redis 合并写 + DelayQueue 延迟检测,把视频播放进度写库频率降到 1/60
java·开发语言·数据库·redis·缓存·音视频·高并发
Xxtaoaooo15 小时前
AI 视频生成能不能真正跑通?MoneyPrinterTurbo 本地制作、远程访问与授权验证
人工智能·音视频·cpolar·ai视频·自动化短视频
bloxed16 小时前
“视频上看得见的洪水淹没预演”:视频数字孪生完整实践
音视频