mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Provide example context files for using FFMPEG to provide video -> flv transformations, and video thumbnailing using FFMPEG
These are based on the ones used on partners.alfresco.com, but slightly cleaned up Also includes a slightly nicer way to register thumbnail definitions to the thumbnail registry from spring. (A proper fix is detailed in ALF-5051, but that will require a config file tweak) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@22817 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
245
config/alfresco/extension/video-thumbnail-context.xml.sample
Normal file
245
config/alfresco/extension/video-thumbnail-context.xml.sample
Normal file
@@ -0,0 +1,245 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
|
||||
<!-- =================================== -->
|
||||
<!-- Video Thumbnailing -->
|
||||
<!-- -->
|
||||
<!-- Uses FFMPEG [http://ffmpeg.org/] to -->
|
||||
<!-- provide thumbnails of video files -->
|
||||
<!-- =================================== -->
|
||||
|
||||
<beans>
|
||||
<!-- Content Transformations -->
|
||||
|
||||
<!-- Video Thumbnails FFmpeg transformation worker -->
|
||||
<bean id="transformer.worker.ffmpeg.thumbnail" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
|
||||
<property name="checkCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="command">
|
||||
<list>
|
||||
<value>${ffmpeg.exe}</value>
|
||||
<value>-version</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="transformCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="commandsAndArguments">
|
||||
<map>
|
||||
<entry key="Windows.*">
|
||||
<list>
|
||||
<value>cmd</value>
|
||||
<value>/C</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i "${source}" ${outfile_opts} "${target}" 2> NUL</value>
|
||||
</list>
|
||||
</entry>
|
||||
<entry key="Linux">
|
||||
<list>
|
||||
<value>sh</value>
|
||||
<value>-c</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i '${source}' ${outfile_opts} '${target}' 2> /dev/null</value>
|
||||
</list>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="waitForCompletion">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="defaultProperties">
|
||||
<props>
|
||||
<prop key="opts">-y</prop>
|
||||
<prop key="infile_opts">-ss 10</prop>
|
||||
<prop key="outfile_opts">-f image2 -vframes 1</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="explicitTransformations">
|
||||
<list>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mpeg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mpeg2</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-sgi-movie</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-msvideo</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/quicktime</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-ms-asf</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-ms-wmv</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-rad-screenplay</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/ogg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>image/jpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
<property name="mimetypeService">
|
||||
<ref bean="mimetypeService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="transformer.ffmpeg.thumbnail" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
|
||||
<property name="worker">
|
||||
<ref bean="transformer.worker.ffmpeg.thumbnail"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="transformer.complex.ffmpeg.Image" class="org.alfresco.repo.content.transform.ComplexContentTransformer" parent="baseContentTransformer">
|
||||
<property name="transformers">
|
||||
<list>
|
||||
<ref bean="transformer.ffmpeg.thumbnail"/>
|
||||
<ref bean="transformer.ImageMagick"/>
|
||||
</list>
|
||||
</property>
|
||||
<property name="intermediateMimetypes">
|
||||
<list>
|
||||
<value>image/jpeg</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
|
||||
<!-- Register extra Thumbnail Definitions -->
|
||||
|
||||
<!-- FLV preview thumbnail options -->
|
||||
<bean id="thumbnail.register.flvpreview" class="org.alfresco.repo.thumbnail.ThumbnailDefinitionSpringRegisterer">
|
||||
<property name="thumbnailRegistry" ref="thumbnailRegistry" />
|
||||
<property name="thumbnailDefinition">
|
||||
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
|
||||
<property name="name" value="flvpreview"/>
|
||||
<property name="mimetype" value="video/x-flv"/>
|
||||
<property name="transformationOptions">
|
||||
<bean class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerOptions">
|
||||
<property name="propertyValues">
|
||||
<props>
|
||||
<prop key="outfile_opts">-f flv -ab 56 -ar 44100 -b 200 -r 15 -s 320x240</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="runAs" value="System"/>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- H264 preview thumbnail options -->
|
||||
<bean id="thumbnail.register.h264preview" class="org.alfresco.repo.thumbnail.ThumbnailDefinitionSpringRegisterer">
|
||||
<property name="thumbnailRegistry" ref="thumbnailRegistry" />
|
||||
<property name="thumbnailDefinition">
|
||||
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
|
||||
<property name="name" value="h264preview"/>
|
||||
<property name="mimetype" value="video/mp4"/>
|
||||
<property name="transformationOptions">
|
||||
<bean class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerOptions">
|
||||
<property name="propertyValues">
|
||||
<props>
|
||||
<!--
|
||||
<prop key="outfile_opts">-f mpeg4 -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180</prop>
|
||||
-->
|
||||
<prop key="outfile_opts">-f mp4 -ar 44100 -ab 96k -vcodec libx264 -crf 25 -g 250 -r 25</prop>
|
||||
<prop key="vpre">medium</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="runAs" value="System"/>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- MP3 preview thumbnail options -->
|
||||
<bean id="thumbnail.register.mp3preview" class="org.alfresco.repo.thumbnail.ThumbnailDefinitionSpringRegisterer">
|
||||
<property name="thumbnailRegistry" ref="thumbnailRegistry" />
|
||||
<property name="thumbnailDefinition">
|
||||
<bean class="org.alfresco.repo.thumbnail.ThumbnailDefinition">
|
||||
<property name="name" value="mp3preview"/>
|
||||
<property name="mimetype" value="audio/x-mpeg"/>
|
||||
<property name="transformationOptions">
|
||||
<bean class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerOptions">
|
||||
<property name="propertyValues">
|
||||
<props>
|
||||
<prop key="outfile_opts">-f mp3 -ar 44100 -ab 128k</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="runAs" value="System"/>
|
||||
</bean>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
</beans>
|
@@ -0,0 +1,376 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
|
||||
|
||||
<!-- =================================== -->
|
||||
<!-- Video Transformation -->
|
||||
<!-- -->
|
||||
<!-- Uses FFMPEG [http://ffmpeg.org/] to -->
|
||||
<!-- turn various video files into flv, -->
|
||||
<!-- which flash can then easily play -->
|
||||
<!-- =================================== -->
|
||||
|
||||
<beans>
|
||||
<!-- Content Transformations -->
|
||||
|
||||
<!-- Generic FFmpeg transformation worker -->
|
||||
<bean id="transformer.worker.ffmpeg.flv" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
|
||||
<property name="checkCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="command">
|
||||
<list>
|
||||
<value>${ffmpeg.exe}</value>
|
||||
<value>-version</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="transformCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="commandsAndArguments">
|
||||
<map>
|
||||
<entry key="Windows.*">
|
||||
<list>
|
||||
<value>cmd</value>
|
||||
<value>/C</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i "${source}" ${outfile_opts} "${target}" 2> NUL</value>
|
||||
</list>
|
||||
</entry>
|
||||
<entry key="Linux">
|
||||
<list>
|
||||
<value>sh</value>
|
||||
<value>-c</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i '${source}' ${outfile_opts} '${target}' 2> /dev/null</value>
|
||||
</list>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="waitForCompletion">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="defaultProperties">
|
||||
<props>
|
||||
<prop key="opts">-y</prop>
|
||||
<prop key="infile_opts"/>
|
||||
<prop key="outfile_opts">-f flv</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
|
||||
<property name="explicitTransformations">
|
||||
<list>
|
||||
<!-- Transform to FLV -->
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mpeg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mpeg2</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-sgi-movie</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-msvideo</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/quicktime</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-ms-asf</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-ms-wmv</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-rad-screenplay</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/ogg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/x-flv</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
<property name="mimetypeService">
|
||||
<ref bean="mimetypeService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Generic FFmpeg transformation worker -->
|
||||
<bean id="transformer.worker.ffmpeg.mp4" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
|
||||
<property name="checkCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="command">
|
||||
<list>
|
||||
<value>${ffmpeg.exe}</value>
|
||||
<value>-version</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="transformCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="commandsAndArguments">
|
||||
<map>
|
||||
<entry key="Windows.*">
|
||||
<list>
|
||||
<value>cmd</value>
|
||||
<value>/C</value>
|
||||
<!-- -vpre does not work on Windows - see https://roundup.ffmpeg.org/issue659 -->
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i "${source}" ${outfile_opts} -fpre "${ffmpeg.base}\share\ffmpeg\libx264-${vpre}.ffpreset" "${target}" 2> NUL</value>
|
||||
</list>
|
||||
</entry>
|
||||
<entry key="Linux">
|
||||
<list>
|
||||
<value>sh</value>
|
||||
<value>-c</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i '${source}' ${outfile_opts} -vpre ${vpre} '${target}' 2> /dev/null</value>
|
||||
</list>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="waitForCompletion">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="defaultProperties">
|
||||
<props>
|
||||
<prop key="opts">-y</prop>
|
||||
<prop key="infile_opts"/>
|
||||
<prop key="outfile_opts">-f mp4 -ar 44100 -ab 96k -vcodec libx264 -crf 25 -g 250 -r 25</prop>
|
||||
<prop key="vpre">medium</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
|
||||
<property name="explicitTransformations">
|
||||
<list>
|
||||
<!-- Transform to MP4 -->
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mpeg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/mpeg2</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-sgi-movie</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-msvideo</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/quicktime</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-ms-asf</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-ms-wmv</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/x-rad-screenplay</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>video/ogg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>video/mp4</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
<property name="mimetypeService">
|
||||
<ref bean="mimetypeService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<!-- Generic MP3 transformation worker -->
|
||||
<bean id="transformer.worker.ffmpeg.mp3" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformerWorker">
|
||||
<property name="checkCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="command">
|
||||
<list>
|
||||
<value>${ffmpeg.exe}</value>
|
||||
<value>-version</value>
|
||||
</list>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="transformCommand">
|
||||
<bean class="org.alfresco.util.exec.RuntimeExec">
|
||||
<property name="commandsAndArguments">
|
||||
<map>
|
||||
<entry key="Windows.*">
|
||||
<list>
|
||||
<value>cmd</value>
|
||||
<value>/C</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i "${source}" ${outfile_opts} "${target}" 2> NUL</value>
|
||||
</list>
|
||||
</entry>
|
||||
<entry key="Linux">
|
||||
<list>
|
||||
<value>sh</value>
|
||||
<value>-c</value>
|
||||
<value>${ffmpeg.exe} ${opts} ${infile_opts} -i '${source}' ${outfile_opts} '${target}' 2> /dev/null</value>
|
||||
</list>
|
||||
</entry>
|
||||
</map>
|
||||
</property>
|
||||
<property name="waitForCompletion">
|
||||
<value>true</value>
|
||||
</property>
|
||||
<property name="defaultProperties">
|
||||
<props>
|
||||
<prop key="opts">-y</prop>
|
||||
<prop key="infile_opts"/>
|
||||
<prop key="outfile_opts">-f mp3</prop>
|
||||
</props>
|
||||
</property>
|
||||
</bean>
|
||||
</property>
|
||||
<property name="explicitTransformations">
|
||||
<list>
|
||||
<!-- Transform to MP3 -->
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>audio/x-aiff</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>audio/x-mpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>audio/basic</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>audio/x-mpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>audio/x-wav</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>audio/x-mpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails">
|
||||
<property name="sourceMimetype">
|
||||
<value>audio/ogg</value>
|
||||
</property>
|
||||
<property name="targetMimetype">
|
||||
<value>audio/x-mpeg</value>
|
||||
</property>
|
||||
</bean>
|
||||
</list>
|
||||
</property>
|
||||
<property name="mimetypeService">
|
||||
<ref bean="mimetypeService"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="transformer.ffmpeg.flv" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
|
||||
<property name="worker">
|
||||
<ref bean="transformer.worker.ffmpeg.flv"/>
|
||||
</property>
|
||||
</bean>
|
||||
|
||||
<bean id="transformer.ffmpeg.mp4" class="org.alfresco.repo.content.transform.ProxyContentTransformer" parent="baseContentTransformer">
|
||||
<property name="worker">
|
||||
<ref bean="transformer.worker.ffmpeg.mp4"/>
|
||||
</property>
|
||||
</bean>
|
||||
</beans>
|
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
* Copyright (C) 2005-2010 Alfresco Software Limited.
|
||||
*
|
||||
* This file is part of Alfresco
|
||||
*
|
||||
* Alfresco is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Alfresco is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.alfresco.repo.thumbnail;
|
||||
|
||||
import org.alfresco.service.cmr.repository.TransformationOptions;
|
||||
import org.springframework.beans.factory.InitializingBean;
|
||||
|
||||
/**
|
||||
* This class provides a way to register a new {@link ThumbnailDefinition}
|
||||
* with the {@link ThumbnailRegistry} in spring, without needing to
|
||||
* override the whole of the "thumbnailRegistry" bean.
|
||||
* This class is a stop-gap until Alfresco 4.0, when ThumbnailDefinitions
|
||||
* will be able to be registered more cleanly with the registry in
|
||||
* the same way as other Alfresco beans to their registrys.
|
||||
*
|
||||
* @author Nick Burch
|
||||
*/
|
||||
public class ThumbnailDefinitionSpringRegisterer implements InitializingBean
|
||||
{
|
||||
private ThumbnailRegistry thumbnailRegistry;
|
||||
private ThumbnailDefinition thumbnailDefinition;
|
||||
|
||||
/**
|
||||
* Registers the {@link ThumbnailDefinition} with the
|
||||
* registry.
|
||||
*/
|
||||
@Override
|
||||
public void afterPropertiesSet()
|
||||
{
|
||||
if(thumbnailDefinition == null || thumbnailRegistry == null)
|
||||
{
|
||||
throw new IllegalArgumentException("Must specify both a thumbnailRegistry AND a thumbnailDefinition");
|
||||
}
|
||||
thumbnailRegistry.addThumbnailDefinition(thumbnailDefinition);
|
||||
}
|
||||
|
||||
public void setThumbnailRegistry(ThumbnailRegistry thumbnailRegistry)
|
||||
{
|
||||
this.thumbnailRegistry = thumbnailRegistry;
|
||||
}
|
||||
|
||||
public void setThumbnailDefinition(ThumbnailDefinition thumbnailDefinition)
|
||||
{
|
||||
this.thumbnailDefinition = thumbnailDefinition;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user