如何录制带备注的演示文稿(LaTex Beamer + Pympress)

参考文献:

  1. Pympress 官网
  2. Avidemux 官网
  3. Audacity 官网
  4. FFmpeg 官网
  5. 2025年度25大视频剪辑软件推荐
  6. 2025最新音频降噪软件盘点,从入门到专业的6个高效工具
  7. 如何用一段音频替换mp4视频格式的原有音频?
  8. 免费简单易用的视频剪切编辑工具---Avidemux
  9. FFmpeg详细安装步骤和使用笔记

文章目录

编写 Beamer 幻灯片

使用 LaTex 编写幻灯片,代码框架如下:

latex 复制代码
\documentclass[9pt,aspectratio=169]{beamer}

\mode<presentation> {
	\usetheme{Warsaw}
	\usecolortheme{default}
	% 主题与配色,查看:https://hartwork.org/beamer-theme-matrix/
	
	%\setbeamertemplate{footline}
	% 若要删除所有幻灯片中的页脚,请取消注释此行
	
	%\setbeamertemplate{footline}[页码]
	% 若要用简单的幻灯片计数替换所有幻灯片中的页脚,请取消注释此行
	
	%\setbeamertemplate{导航符号}{}
	% 要删除所有幻灯片底部的导航符号,请取消注释此行
}

\usepackage{amsfonts,amssymb,amsmath,amsthm,newtxmath}		% 数学
\usepackage{booktabs,tabularx,makecell,multirow,multicol}	% 表格
\usepackage{graphicx,float,tikz}							% 绘图
\usepackage[UTF8]{ctexcap}									% 中文

% 修改左右边距
\setbeamersize{text margin left=2em,text margin right=2em}

% 设置默认的字体颜色和背景
\setbeamercolor{normal text}{fg=black,bg=white}

% 设置段落缩进为两个汉字
\setlength{\parindent}{1.6em}

% 设置段落间距
\setlength{\parskip}{0.3em}

\title[XXX]{YYY}
%\subtitle{}

\author[X. Alice \and O. Bob]
{
	XYZ Alice \inst{1}
	\and OPQ Bob \inst{1,2} $^*$
}
\institute{
	1 \hspace{0.2em} IIE, CAS\\
	\{Alice, Bob\}@qq.com\\
	\medskip
	2 \hspace{0.2em} UCAS
}
\date{AsiaCCS 2025, August 25-29}

% 启用演讲者备注(在演示中隐藏,但可在 PDF 阅读器中实时查看)
\setbeameroption{show notes on second screen=right}  % 双屏模式

\begin{document}

% 标题页
\begin{frame}[plain]
	\begin{figure}[!ht]
		\raggedleft
		\includegraphics[width=0.25\textwidth]{Img/UCAS.png}
	\end{figure}
	
	\titlepage
	
	\note{\begin{itemize}
	
	\item Hello everyone.
	
	\end{itemize}}
\end{frame}

% 目录页
\begin{frame}[plain]{Outline}
	\begingroup
	\setcounter{tocdepth}{2} % 显示前 2 级标题
	\tableofcontents
	\endgroup
\end{frame}

%-----------------------------------
%	以下为正文
%-----------------------------------

% 在章节开头插入目录
\AtBeginSection[]
{
	\begin{frame}{Contents}
		\tableofcontents[
			currentsection,				% 当前章节高亮
			hideothersubsections]		% 隐藏其他章节的小节
		\addtocounter{framenumber}{-1}	% 目录页不计算页码
	\end{frame}
}

%----------------------------------- 绪论 -----------------------------------
\section{Introduction}

\begin{frame}{Background}
	\color{black}
	
	ABCDEFG
	
	aoeywuv
	
	% 插入备注
	\note{\begin{itemize}
	
	\item XXXXX
	
	\item YYYYY
	
	\end{itemize}}
	
\end{frame}


%----------------------------------- 详情 -----------------------------------


% 感谢页
\begin{frame}
	\color{black}
	
	\centering
	\Huge Thank you for your attention!
	
	\vspace{1cm}
	\Large Questions?
	
	% 插入备注
	\note{\begin{itemize}
	
	\item Okay, that's all for my presentation.
	
	\end{itemize}}

\end{frame}


\end{document} 

编译之后,获得带备注 的双栏幻灯片(它是 .pdf 格式,左栏是正常内容,右栏是备注)

双屏演示和录制

安装 Pympress,使用它打开上述的 .pdf 文件,包含如下的两个窗口。

演示者视图(放在一个显示器上):

放映窗口(可放到另一个显示器上,比如 Windows 的多个桌面):

首先,进入窗口 2 (使用 Ctrl + Win + Leftarrow / Rightarrow 快速切屏),执行 Win + G 启动 Xbox 录屏,选定上述的放映窗口 ,开始录屏(快捷键 Win + Alt + R

现在,可以回到窗口 1 ,翻阅讲解演示者视图,这不会改变录制的窗口(即录制内容不会显示备注)

视频剪辑和音频处理

安装:Avidemux(视频剪辑)、Audacity(音频处理)、FFmpeg(提取和替换音轨)。

预处理

录制好的 .mp4 具有关键帧(包含完整的图像)和非关键帧(仅包含变化信息),如果直接剪辑,可能导致声音和图像不同步。因此,首先执行如下的 .bat 脚本,利用 ffmpeg 将所有的帧都变成关键帧,

bash 复制代码
@echo off
setlocal enabledelayedexpansion

echo Starting video processing...

for /L %%x in (1,1,30) do (
    set "input=%%x.mp4"
    set "output=%%xk.mp4"
    
    echo Processing !input! to !output!
    ffmpeg -i !input! -c:v libx264 -x264opts keyint=1 -y !output!
    
    if errorlevel 1 (
        echo Error processing !input!
    ) else (
        echo !input! has been successfully processed to !output!
    )
)

echo All video files have been processed!

执行过程如图所示,

剪切和拼接

启动 Avidemux,打开预处理后的 .mp4 文件,如下图所示:

它可以完成:

  • 将一个视频剪切为多个片段
  • 将多个片段拼接成更长的视频

音频降噪

剪辑完成后,使用 Audacity 打开这个 .mp4 文件(需要配置好 ffmpeg 目录),能够自动提取出它的音频数据。如下图所示:

在工具栏的 效果器 中,可以找到降噪的功能。最后,将处理好的数据导出为 .m4a 文件。

然后,在工作目录中启动 cmd,执行命令

bash 复制代码
ffmpeg -i old.mp4 -i edit.m4a -c:v copy -c:a copy -map 0:v:0 -map 1:a:0 new.mp4

它会将 old.mp4 中的音频替换为 edit.m4a(注意音轨的长度不要改变),输出到 new.mp4 文件中。

相关推荐
写代码的小球1 小时前
求模运算符c
算法
tan180°4 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
大千AI助手4 小时前
DTW模版匹配:弹性对齐的时间序列相似度度量算法
人工智能·算法·机器学习·数据挖掘·模版匹配·dtw模版匹配
彭祥.5 小时前
Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类
c++·opencv·分类
lzb_kkk6 小时前
【C++】C++四种类型转换操作符详解
开发语言·c++·windows·1024程序员节
YuTaoShao6 小时前
【LeetCode 热题 100】48. 旋转图像——转置+水平翻转
java·算法·leetcode·职场和发展
生态遥感监测笔记6 小时前
GEE利用已有土地利用数据选取样本点并进行分类
人工智能·算法·机器学习·分类·数据挖掘
Tony沈哲7 小时前
macOS 上为 Compose Desktop 构建跨架构图像处理 dylib:OpenCV + libraw + libheif 实践指南
opencv·算法
刘海东刘海东7 小时前
结构型智能科技的关键可行性——信息型智能向结构型智能的转变(修改提纲)
人工智能·算法·机器学习