适用于 Windows 的多媒体包的 PDF 阅读器

适用于 Windows 的多媒体包的 PDF 阅读器

我可以使用 或 来将视频嵌入到 Beamer 中。\movie在第 一种情况下,视频可以在 Okular (Linux) 中正确显示。在第二种情况下,我使用 Adob​​e Reader (Windows)。但是,使用更好:pdf 编译得更快,体积更小,并且在演示过程中视频加载速度更快。 我尝试了适用于 Windows 的 Okular(来自 Microsoft Store),但视频无法显示。有没有适用于Windows 的阅读器?multimedia\includemediamedia9
\movie
\movie

编辑

根据这个答案,如果影片是 .avi 或 .mov 格式,应该可以\movie在 Windows 上与 Adob​​e 一起使用。我试过 .avi,但不起作用。视频仍然需要时间加载,pdf 仍然很大,视频甚至无法播放(我得到了典型的插件错误图标,说 Adob​​e 无法读取源代码)。仍在寻找适用于 Windows 的 Adob​​e 替代品……

答案1

要使用软件包和 Acrobat Reader 播放现代 MP4/H.264 格式的大型视频文件media9,应使用 Web 服务器方法。即使是 275 MB 的视频文件也会在后台加载时立即开始播放。使用此方法,视频文件不会嵌入 PDF 中。

本地视频文件也可以由本地运行的轻量级 Web 服务器(如 Nginx)提供。请参阅https://tex.stackexchange.com/a/73039了解使用说明。


编辑:

命令

\mediaopts{<media label>}{[autoplay] [, autopause] [, autorewind]}

%   autoplay   -> play / resume on page-open
%   autopause  -> pause on page-close
%   autorewind -> seek to start on page-close

已添加。它允许在页面打开和页面关闭事件期间控制媒体行为。暂停的媒体将继续在后台加载。


这是一个大型视频示例,使用了来自 Blender.org 的“Big Buck Bunny”示例:

\documentclass{beamer}

\usepackage{fontawesome5}
\usepackage{media9}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \mediaopts{<media label>}{[autoplay] [, autopause] [, autorewind]}
%
%   autoplay   -> play / resume on page-open
%   autopause  -> pause on page-close
%   autorewind -> seek to start on page-close
%
%   Place command directly after \includemedia[...]{...}{...} 
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\ExplSyntaxOn
\NewDocumentCommand\mediaopts{mm}{
  \group_begin:
  \leavevmode
  %reset actions
  \tl_clear:N\l_mix_openact_tl \tl_clear:N\l_mix_closeact_tl
  %process list of actions
  \tl_if_exist:cTF{ann@#1}{
    \str_if_eq:eeF{\tl_use:c{ann@#1}}{draft}{
      \clist_map_inline:nn{#2}{
        \str_case:nn{##1}{
          {autoplay}{
            \mix_pdfobj:nnn{}{dict}{
              /S/RichMediaExecute /TA~\tl_use:c{ann@#1} /TI~\tl_use:c{main@#1}
              /CMD~<</C~(play)>>
            }
            \tl_set:Nx\l_mix_openact_tl{\mix_pdflastobj:}
          }
          {autopause}{
            \mix_pdfobj:nnn{}{dict}{
              /S/RichMediaExecute /TA~\tl_use:c{ann@#1} /TI~\tl_use:c{main@#1}
              /CMD~<</C~(pause)>>
            }
            \tl_put_right:Nx\l_mix_closeact_tl{\mix_pdflastobj:}
          }
          {autorewind}{
            \mix_pdfobj:nnn{}{dict}{
              /S/RichMediaExecute /TA~\tl_use:c{ann@#1} /TI~\tl_use:c{main@#1}
              /CMD~<</C~(rewind)>>
            }
            \tl_put_right:Nx\l_mix_closeact_tl{\mix_pdflastobj:}
          }
        }
      }
      %insert widget annotation
      \mix_pdfannot:nnnn{3bp}{3bp}{0pt}{
        /Subtype/Widget /T~(mbtn@\int_use:N\g_mix_mbtncnt_int) /FT/Btn/Ff~65537
        /AA~<<
          /PO~<<
            /S/JavaScript/JS~(
              if(typeof(annotRM)=='undefined'){annotRM=new~Array();}
              if(typeof(annotRM['#1'])=='undefined'){
                annotRM['#1']=this.getAnnotRichMedia(\tl_use:c{page@#1},'#1');
              }
              annotRM['#1'].activated=true;
            )
            \tl_if_empty:NF\l_mix_openact_tl{/Next~\l_mix_openact_tl}
          >>
          \tl_if_empty:NF\l_mix_closeact_tl{
            /PC~<</S/Named /N/NOP/Next~[\l_mix_closeact_tl]>>
          }
        >>
      }
      \mix_appendtofields:n{\mix_pdflastann:}
      \int_gincr:N\g_mix_mbtncnt_int
    }
  }{
    \msg_warning:nnx{media9}{undefined~reference}{#1}
    \cs_if_exist:NF\g_mix_refundefwarned_tl{
      \tl_new:N\g_mix_refundefwarned_tl
      \AtEndDocument{\msg_warning:nn{media9}{undefined~references}}
    }
  }
  \group_end:
}
\ExplSyntaxOff
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\begin{frame}{Start}
\end{frame}

\begin{frame}{Remote video}
  \noindent\includemedia[
    label=bunny,
    width=\linewidth,height=0.5625\linewidth, % 16:9
    activate=pageopen,
    deactivate=onclick, % keep FlashPlayer activated
    passcontext,
    flashvars={
%       source=http://localhost/bbb_sunflower_1080p_30fps_normal.mp4
       source=http://distribution.bbb3d.renderfarming.net/video/mp4/bbb_sunflower_1080p_30fps_normal.mp4
      &autoPlay=true
    }
  ]{}{VPlayer.swf}%
  \mediaopts{bunny}{autoplay,autopause}

  \mediabutton[mediacommand=bunny:pause, mediacommand=bunny:rewind]{\faStop}\quad
  \mediabutton[mediacommand=bunny:playPause]{\faPlay / \faPause}
\end{frame}

\begin{frame}{End}
\end{frame}

\end{document}

相关内容