Skip to main content

Convert markdown presentations files to video

Project description

markdown2video

markdown2video,让你用markdown生成视频和PPT!

以视频为核心,目标是同时生成博客文章。

安装

下载ffmpeg然后放到PATH中。

通过pip安装:

pip install md2video

使用

markdown(视频脚本)

基础语法如下:

  • 使用<!-- mode: slide -->后,后续内容作为PPT的页面渲染。
  • 使用<!-- mode comment -->后,后续内容作为TTS的输入生成语音,解释前一页面。
<!-- mode: slide -->

# PPT的标题

PPT的内容

<!-- mode comment -->

这里是解释本页PPT的内容。会被转为语音配上上面的画面。

  • 对复杂的内容展示需求,可以使用下面的方式直接编写reveal.js代码。(基于pandoc的html的拓展)

    \```{=html}
    
    \```
    

md2video

命令行工具,通过python -m md2video调用。将markdown视频脚本转换为视频

指定输入的markdown文件后,会创建后缀为.md2video的缓存文件夹。

markdown视频脚本 --(md2slidemd)--> pandoc支持的markdown编写PPT的格式(reveal.js) --(md2image)--> html格式的PPT,每页PPT的图像,以及打印得到pdf格式的PPT。
python -m md2video.md2slidemd

架构

  • md2slidemd:基于pandoc filters实现markdown解析,并利用pandoc转换为reveal.js格式的markdown幻灯片。
  • md2image:基于playwright的headless浏览器打开页面,截屏转换为图片序列。
  • TTS:基于kokoro_onnx项目生成每个幻灯片的语音
  • slidemd2video:基于python-ffmpeg,从图片和语音生成视频。

拓展的Markdown语义特性

需求分解:

  • 标记为slide的块,在生成文章的时候也正常渲染?即,即使不加修改,作为markdown也可以看。
  • 原始的markdown是以文章优先还是slides优先?能否做到原始markdown直接是文章?似乎不太能做到文章和slides兼顾。
  • 标识的方式:如果只用起始标识,而不是标识开始和结束,那么整个文章默认会被划分为slides,文字部分必须主动处理为非slides?还是把用于生成图片的部分单独拿出来吧。然后单独去生成文章。
  • 其他方便浏览的格式:slides的pdf格式。

TODO

  • 模型文件放到appdata,然后缺文件的时候问用户是否立刻下载。
  • 通过分句生成语音的方式生成字幕。
  • 生成竖屏内容。
  • 同时支持中文和英语。
  • 集成更多的TTS API,包括edge TTS。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

md2video-0.0.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

md2video-0.0.1-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file md2video-0.0.1.tar.gz.

File metadata

  • Download URL: md2video-0.0.1.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for md2video-0.0.1.tar.gz
Algorithm Hash digest
SHA256 cca51767cb53596b4767a0add84cec4825b57f6c30ebbc64208ef6db259b102e
MD5 de536b9844216b9d453b03944ec32516
BLAKE2b-256 de45b53427a74d7143b95f9529f3743878c3ece8ef9ee357a00929d00a6bb71e

See more details on using hashes here.

File details

Details for the file md2video-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: md2video-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.4

File hashes

Hashes for md2video-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 76b6ddeadecddc9bd1e84df349df17f455e257c31d472deefa8af046b0b3df9e
MD5 9f9351f7ed3dd846f5f51f43a18761b7
BLAKE2b-256 3059afd243b92d82a8b1fa203f49db8209141ed1dd4322f900683a60e24e3c92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page