summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/flashmovie
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-12-05 01:23:16 +0000
committerKarl Berry <karl@freefriends.org>2009-12-05 01:23:16 +0000
commit4b5278d501074b7f91fd9dece761969c86bec8ca (patch)
treeb01d963e1d2100cca690bdfbd7dc382b4adefd03 /Master/texmf-dist/tex/latex/flashmovie
parent356ac6d75d6b87afe160237c38d0d3d7cba15c34 (diff)
new latex package flashmovie (4dec09)
git-svn-id: svn://tug.org/texlive/trunk@16296 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/flashmovie')
-rw-r--r--Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty297
1 files changed, 297 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty b/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty
new file mode 100644
index 00000000000..b2f6f9a27c4
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/flashmovie/flashmovie.sty
@@ -0,0 +1,297 @@
+%%%%%%%%%%%%% flashmovie.sty
+%%%%%%%%%%%%% Copyright 2009 Timo Hartmann
+%
+% Version 0.0
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This package allows direct embedding of flash movies into PDF files. It is
+% designed for use with pdflatex.
+%
+% Basically it uses the fact that the Adobe Reader 9 contains an embedded Adobe Flash
+% player which can be invoked with the "rich media annotation" feature which is described
+% in "Adobe Supplement to the ISO 32000 BaseVersion: 1.7 ExtensionLevel: 3".
+%
+% advantages:
+% - You can directly embed videos into the pdf (external window is optimal and not necessary).
+% - You can play back videos without worrying about platform dependencies.
+%
+% disadvantages:
+% - You can only play back embedded videos with Adobe Reader 9 and upwards.
+%
+% example (1)
+% - download a video file to use, for example
+% http://heasarc.gsfc.nasa.gov/Videos/historical/saturn5.avi
+% - transform this video into the flash format with ffmpeg:
+% ffmpeg -i saturn5.avi saturn5.swf
+% (or use any other program captable of this, for example mencoder)
+% - put following line into your tex-file:
+% \flashmovie[width=10cm,heigth=10cm]{saturn5.swf}
+% (both width and height are needed!)
+% - translate with pdflatex
+% - advantages:
+% - easy
+% - does not reley on external compontents
+% - disadvantages:
+% - ffmpeg is incaptable of embedding h.264 into swf-files, so one can only
+% use inferior video codecs (sorenson h.263 aka flv,...).
+% - no controls (play,pause,stop,seek,...) possible
+%
+% example (2)
+% - warning: The following example assumes that you have obainted VideoPlayer.swf
+% and SkinOverPlaySeekStop.swf from Acrobat 9 Pro and put it into the working
+% directory.
+% - download a video file to use, for example
+% http://heasarc.gsfc.nasa.gov/Videos/historical/saturn5.avi
+% - transform this video into the mp4 format with ffmpeg:
+% ffmpeg -i saturn5.avi -vcodec libx264 -vpre hq -crf 22 -acodec libfaac -ab 128k -ac 2 saturn5.mp4
+% (or use any other program captable of this, for example mencoder)
+% - alternatively the flv-format with video-codec sorenson h.263 (aka flv) and audio-codec mp3 is also possible:
+% mencoder saturn5.avi -o saturn5.flv -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=300:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 -srate 22050 -ofps 24 -vf harddup -oac mp3lame -lameopts abr:br=56 )
+% (or use ffmpeg to do the same thing...)
+% - put following line into your tex-file:
+% \flashmoviex[width=10cm,heigth=10cm]{saturn5.mp4}
+% (both width and height are needed! instead of saturn5.mp4 one can also use saturn5.flv but not saturn5.swf)
+% - translate with pdflatex
+% - advantages:
+% - controls (play,pause,stop,seek,...) possible
+% - superior video codec possible (h.264)
+% - one can directly embed mp4 and flv files without conversion
+% - disadvantages:
+% - use of external non-free components.
+%
+% todo:
+% - replace VideoPlayer.swf and SkinOverPlaySeekStop.swf by some freely available software.
+% it should be possible to program a simple video player with flexsdk and activescript.
+% the videoplayer should play mp4 and flv files and should and be captable of play,pause,seek,stop.
+% controls should be hidable.
+% - make more options of richmedia annotations usable, for example activation by clicking, playcount,...
+% - display a picture when the player is deactivated.
+% - efficient multiple inclusion of video files.
+%
+% warning:
+% - Because the file names of the movies are directly embedded into the PDFs please use only
+% "normal" file names. More specific use only names compatible with internal PDF strings.
+% There is even a specification what conforming file names are (see the PDF reference).
+
+\RequirePackage{keyval}
+
+\def\flashmovieparamsclear{
+ \def\flashmoviewidth {4cm}
+ \def\flashmovieheight{4cm}
+}
+
+\define@key{flashmovieparams}{width} {\def\flashmoviewidth {#1}}
+\define@key{flashmovieparams}{heigth} {\def\flashmovieheight {#1}}
+
+\def\flashmovieembedfile#1{
+ \immediate
+ \pdfobj stream
+ attr { /Type/EmbeddedFile }
+ file {#1}
+ \immediate
+ \pdfobj { <<
+ /Type /Filespec
+ /F (#1)
+ /UF (#1)
+ /EF << /F \the\pdflastobj\space 0 R >>
+ >>}
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\flashmovie{\@ifnextchar[\@flashmovie{\@flashmovie[]}}
+
+\def\@flashmovie[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{
+ \newcount\filespecnum
+ \newcount\configurationnum
+ \newcount\contentnum
+ \newcount\settingsnum
+
+ \flashmovieembedfile{#2}
+ \filespecnum=\pdflastobj
+
+ \immediate
+ \pdfobj
+ {<<
+ /Instances
+ [<<
+ /Asset \the\filespecnum\space 0 R
+ /Params << /Binding /Foreground >>
+ >>]
+ /Subtype /Flash
+ >>}
+ \configurationnum=\pdflastobj
+
+ \immediate
+ \pdfobj
+ {<<
+ /Assets << /Names [(#2) \the\filespecnum\space 0 R] >>
+ /Configurations [\the\configurationnum\space 0 R]
+ >>}
+ \contentnum=\pdflastobj
+
+ \immediate
+ \pdfobj
+ {<<
+ /Activation
+ << /Type /RichMediaActivation
+ /Condition /PO
+ /Configuration \the\configurationnum\space 0 R
+ /Animation
+ << /Subtype /Linear
+ /Speed 1
+ /Playcount 1
+ >>
+ /Presentation
+ << /PassContextClick false
+ /Style /Embedded
+ /Toolbar false
+ /NavigationPane false
+ /Transparent true
+ /Window
+ << /Type /RichMediaWindow
+ /Width << /Default 100 /Min 100 /Max 100 >>
+ /Height << /Default 100 /Min 100 /Max 100 >>
+ /Position
+ << /Type /RichMediaPosition
+ /HAlign /Near
+ /VAlign /Near
+ /HOffset 0
+ /VOffset 0
+ >>
+ >>
+ >>
+ >>
+ /Deactivation
+ << /Type /RichMediaDeactivation
+ /Condition /XD
+ >>
+ >>}
+ \settingsnum=\pdflastobj
+
+ \newlength{\xxwidth}
+ \newlength{\xxheight}
+ \newsavebox{\xxcontent}
+
+ \sbox{\xxcontent} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}}
+
+ \settowidth {\xxwidth} {\usebox{\xxcontent}}%
+ \settoheight{\xxheight}{\usebox{\xxcontent}}%
+ \usebox{\xxcontent}%
+
+ \pdfannot width \xxwidth height \xxheight depth 0pt {%
+ /Subtype /RichMedia
+ /RichMediaContent \the\contentnum\space 0 R
+ /RichMediaSettings \the\settingsnum\space 0 R
+}}}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\def\flashmoviex{\@ifnextchar[\@flashmoviex{\@flashmoviex[]}}
+
+\def\@flashmoviex[#1]#2{\flashmovieparamsclear \setkeys{flashmovieparams}{#1}{
+ \newcount\filespecnum
+ \newcount\filespecnumi
+ \newcount\filespecnumii
+ \newcount\configurationnum
+ \newcount\contentnum
+ \newcount\settingsnum
+
+ \flashmovieembedfile{#2}
+ \filespecnum=\pdflastobj
+
+ \flashmovieembedfile{SkinOverPlaySeekStop.swf}
+ \filespecnumi=\pdflastobj
+
+ \flashmovieembedfile{VideoPlayer.swf}
+ \filespecnumii=\pdflastobj
+
+ \immediate
+ \pdfobj
+ {<<
+ /Instances
+ [<<
+ /Asset \the\filespecnumii\space 0 R
+ /Params
+ <<
+ /Binding /Foreground
+ /FlashVars (source=#2&skin=SkinOverPlaySeekStop.swf&skinAutoHide=true&skinBackgroundColor=0x00FF00&skinBackgroundAlpha=0.33&volume=1.00)
+ >>
+ >>]
+ /Subtype /Flash
+ >>}
+ \configurationnum=\pdflastobj
+
+ \immediate
+ \pdfobj
+ {<<
+ /Assets << /Names [(#2) \the\filespecnum\space 0 R (skinover.swf) \the\filespecnumi\space 0 R (VideoPlayer.swf) \the\filespecnumii\space 0 R] >>
+ /Configurations [\the\configurationnum\space 0 R]
+ >>}
+ \contentnum=\pdflastobj
+
+ \immediate
+ \pdfobj
+ {<<
+ /Activation
+ << /Type /RichMediaActivation
+ /Condition /PO
+ /Configuration \the\configurationnum\space 0 R
+ /Animation
+ << /Subtype /Linear
+ /Speed 1
+ /Playcount 1
+ >>
+ /Presentation
+ << /PassContextClick false
+ /Style /Embedded
+ /Toolbar false
+ /NavigationPane false
+ /Transparent true
+ /Window
+ << /Type /RichMediaWindow
+ /Width << /Default 100 /Min 100 /Max 100 >>
+ /Height << /Default 100 /Min 100 /Max 100 >>
+ /Position
+ << /Type /RichMediaPosition
+ /HAlign /Near
+ /VAlign /Near
+ /HOffset 0
+ /VOffset 0
+ >>
+ >>
+ >>
+ >>
+ /Deactivation
+ << /Type /RichMediaDeactivation
+ /Condition /XD
+ >>
+ >>}
+ \settingsnum=\pdflastobj
+
+ \newlength{\xxwidth}
+ \newlength{\xxheight}
+ \newsavebox{\xxcontent}
+
+ \sbox{\xxcontent} {{\hbox to \flashmoviewidth {\vbox to \flashmovieheight { }}}}
+
+ \settowidth {\xxwidth} {\usebox{\xxcontent}}%
+ \settoheight{\xxheight}{\usebox{\xxcontent}}%
+ \usebox{\xxcontent}%
+
+ \pdfannot width \xxwidth height \xxheight depth 0pt {%
+ /Subtype /RichMedia
+ /RichMediaContent \the\contentnum\space 0 R
+ /RichMediaSettings \the\settingsnum\space 0 R
+}}}