Package com.day.cq.dam.handler.ffmpeg
Class FFMpegWrapper
- java.lang.Object
 - 
- com.day.cq.dam.handler.ffmpeg.FFMpegWrapper
 
 
- 
public class FFMpegWrapper extends java.lang.Object 
- 
- 
Constructor Summary
Constructors Constructor Description FFMpegWrapper(java.io.File file)Creates a wrapper to run ffmpeg for the given video file.FFMpegWrapper(java.io.File file, java.io.File workingDir)Creates a wrapper to run ffmpeg for the given video file. 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static FFMpegWrapperfromProfile(java.io.File inputFile, VideoProfile profile, java.io.File workingDir)Turns a video profile into a FFMpegWrapper.java.io.FilegetClip(double startTime, double endTime, java.lang.String mimeType)Create clip from the video.java.lang.StringBuildergetFFMpegOutput()java.awt.image.BufferedImagegetFilmStrip(int frames, int width)longgetInputDuration()java.awt.DimensiongetInputSize()java.lang.StringgetOutputExtension()java.lang.StringgetOutputMimetype()java.awt.DimensiongetOutputSize()java.lang.StringgetProfileName()java.lang.StringgetRenditionSelector()java.awt.image.BufferedImage[]getThumbnails(int thumbnails, int start)Create thumbnails from the video.java.io.Filejoin(java.io.File other, java.lang.String name)voidsetAudioBitrate(int audioBitrate)voidsetAudioChannels(int i)voidsetAudioCodec(java.lang.String audioCodec)voidsetAudioSamplingRate(int audioSamplingRate)voidsetBitrate(int bitrate)Sets the output video bitrate in kbits/secondvoidsetBitrateTolerance(int i)voidsetClipDuration(long i)voidsetCropArea(java.awt.Rectangle rectangle)voidsetCustomFlags(java.lang.String[] flags)voidsetDuration(long duration)voidsetExecutableLocator(ExecutableLocator locator)voidsetFitInside()voidsetFitInside(boolean fitInside)voidsetFps(java.lang.String fps)voidsetInput(java.io.File f)voidsetInputsize(java.awt.Dimension inputsize)voidsetLetterbox()voidsetLetterbox(boolean letterbox)voidsetOutputExtension(java.lang.String extension)voidsetOutputMimetype(java.lang.String outputMimetype)voidsetOutputSize(java.awt.Dimension dimension)voidsetPreset(java.lang.String preset)voidsetProfileName(java.lang.String profileName)voidsetRenditionSelector(java.lang.String renditionSelector)voidsetStartTime(long i)voidsetTwoPass()voidsetTwoPass(boolean twoPass)voidsetVideoCodec(java.lang.String videoCodec)java.io.Filetranscode()java.io.Filetranscode(java.lang.String extension)java.io.Filetrim(java.lang.String name) 
 - 
 
- 
- 
Constructor Detail
- 
FFMpegWrapper
public FFMpegWrapper(java.io.File file)
Creates a wrapper to run ffmpeg for the given video file. Will run ffmpeg in the current working directory of JVM.- Parameters:
 file- video file to call ffmpeg with
 
- 
FFMpegWrapper
public FFMpegWrapper(java.io.File file, java.io.File workingDir)Creates a wrapper to run ffmpeg for the given video file. Provide a different workingDir every time you create thisFFMpegWrapperas ffmpeg's temp file name in 2-pass encoding is hard coded in the ffmpeg build, which causes problem while running simultaneous multiple encodings. Even you use -passlogfile option, x264_2pass.log file name is hard coded in the older ffmpeg builds. For more details please refer to bug:42346.- Parameters:
 file- video file to call ffmpeg withworkingDir- a working directory for ffmpeg; ifnull, the current working directory of the JVM is used
 
 - 
 
- 
Method Detail
- 
getOutputExtension
public java.lang.String getOutputExtension()
 
- 
setOutputExtension
public void setOutputExtension(java.lang.String extension)
 
- 
getFFMpegOutput
public java.lang.StringBuilder getFFMpegOutput()
 
- 
getProfileName
public java.lang.String getProfileName()
 
- 
setProfileName
public void setProfileName(java.lang.String profileName)
 
- 
getRenditionSelector
public java.lang.String getRenditionSelector()
 
- 
setRenditionSelector
public void setRenditionSelector(java.lang.String renditionSelector)
 
- 
getOutputMimetype
public java.lang.String getOutputMimetype()
 
- 
setOutputMimetype
public void setOutputMimetype(java.lang.String outputMimetype)
 
- 
setTwoPass
public void setTwoPass()
 
- 
setTwoPass
public void setTwoPass(boolean twoPass)
 
- 
setPreset
public void setPreset(java.lang.String preset)
 
- 
setAudioSamplingRate
public void setAudioSamplingRate(int audioSamplingRate)
 
- 
setAudioBitrate
public void setAudioBitrate(int audioBitrate)
 
- 
setVideoCodec
public void setVideoCodec(java.lang.String videoCodec)
 
- 
setAudioCodec
public void setAudioCodec(java.lang.String audioCodec)
 
- 
setBitrate
public void setBitrate(int bitrate)
Sets the output video bitrate in kbits/second- Parameters:
 bitrate- The bitrate
 
- 
setInput
public void setInput(java.io.File f)
 
- 
setExecutableLocator
public void setExecutableLocator(ExecutableLocator locator)
 
- 
setOutputSize
public void setOutputSize(java.awt.Dimension dimension)
 
- 
getOutputSize
public java.awt.Dimension getOutputSize()
 
- 
getInputDuration
public long getInputDuration()
 
- 
getInputSize
public java.awt.Dimension getInputSize()
 
- 
getThumbnails
public java.awt.image.BufferedImage[] getThumbnails(int thumbnails, int start)Create thumbnails from the video.- Parameters:
 thumbnails- The number of desired thumbnails.start- The start position in seconds from where to take the first thumbnail.- Returns:
 - The thumbnails.
 
 
- 
getClip
public java.io.File getClip(double startTime, double endTime, java.lang.String mimeType)Create clip from the video.- Parameters:
 startTime- startTime of the clip.endTime- The end position in seconds of the clip .- Returns:
 - The thumbnails.
 
 
- 
join
public java.io.File join(java.io.File other, java.lang.String name) throws java.io.IOException- Throws:
 java.io.IOException
 
- 
trim
public java.io.File trim(java.lang.String name) throws java.io.IOException- Throws:
 java.io.IOException
 
- 
transcode
public java.io.File transcode() throws java.io.IOException- Throws:
 java.io.IOException
 
- 
transcode
public java.io.File transcode(java.lang.String extension) throws java.io.IOException- Throws:
 java.io.IOException
 
- 
setLetterbox
public void setLetterbox()
 
- 
setLetterbox
public void setLetterbox(boolean letterbox)
 
- 
setFitInside
public void setFitInside()
 
- 
setFitInside
public void setFitInside(boolean fitInside)
 
- 
getFilmStrip
public java.awt.image.BufferedImage getFilmStrip(int frames, int width) 
- 
setFps
public void setFps(java.lang.String fps)
 
- 
setBitrateTolerance
public void setBitrateTolerance(int i)
 
- 
setAudioChannels
public void setAudioChannels(int i)
 
- 
setCustomFlags
public void setCustomFlags(java.lang.String[] flags)
 
- 
setStartTime
public void setStartTime(long i)
 
- 
setClipDuration
public void setClipDuration(long i)
 
- 
setCropArea
public void setCropArea(java.awt.Rectangle rectangle)
 
- 
setInputsize
public void setInputsize(java.awt.Dimension inputsize)
 
- 
setDuration
public void setDuration(long duration)
 
- 
fromProfile
public static FFMpegWrapper fromProfile(java.io.File inputFile, VideoProfile profile, java.io.File workingDir)
Turns a video profile into a FFMpegWrapper.- Parameters:
 inputFile-profile- can be the cq:Page or jcr:content node of a profile pageworkingDir- working directory for ffmpeg- Returns:
 
 
 - 
 
 -