类 Transformer
- java.lang.Object
-
- com.ts.lib.ffmpegkit.Transformer
-
-
嵌套类概要
-
从接口继承的嵌套类/接口 com.ts.lib.ffmpegkit.Transform
Transform.X264Preset
-
-
字段概要
-
从接口继承的字段 com.ts.lib.ffmpegkit.Transform
PRESET_FAST, PRESET_FASTER, PRESET_MEDIUM_DEFAUT, PRESET_PLACEBO, PRESET_SLOW, PRESET_SLOWER, PRESET_SUPERFAST, PRESET_ULTRAFAST, PRESET_VERYFAST, PRESET_VERYSLOW, SCALE_UNSET, TAG, TIME_END_OF_SOURCE, TIME_UNSET, VALUE_UNSET
-
-
方法概要
所有方法 静态方法 实例方法 具体方法 修饰符和类型 方法 说明 FFmpegSessionaddBGMusic(android.content.Context context, String videoInput, String musicInput, long startTimeMs, float originVolume, float bgmVolume, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)给视频文件在原音轨上添加背景音乐,同时可调整原音轨和背景应该的音量FFmpegSessionaddBGMusic(String videoInput, String musicInput, long startTimeMs, float originVolume, float bgmVolume, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)给视频文件在原音轨上添加背景音乐,同时可调整原音轨和背景应该的音量voidcancel()发送 中断 信号,终止所有任务voidcancel(long sessionId)终止正在执行的任务,此方法不会等待term终止完成,会立即返回FFmpegSessioncutMedia(android.content.Context context, String inputFile, long startTimeMs, long durationMs, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)裁剪媒体文件(音频或者视频)FFmpegSessioncutMedia(String inputFile, long startTimeMs, long durationMs, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)裁剪媒体文件(音频或者视频) Note:此剪切采样copy不re encode 1.FFmpegSessioncutVideo(android.content.Context context, String inputFile, long startTimeMs, long durationMs, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)裁剪 Video 视频文件 Note:此裁剪将会重新编码 1.FFmpegSessioncutVideo(String inputFile, long startTimeMs, long durationMs, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)裁剪 Video 视频文件 Note:此裁剪将会重新编码 1.voidenableDebug(boolean enable)开启 or 关闭 Debug,true则输出日志FFmpegSessionfastStart(android.content.Context context, android.net.Uri inputFile, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)使 mp4 文件在网络上播放时,能快速开始FFmpegSessionfastStart(android.content.Context context, String inputFile, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)使 mp4 文件在网络上播放时,能快速开始FFmpegSessionfastStart(String inputFile, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)使 mp4 文件在网络上播放时,能快速开始FFmpegSessiongenerateVideoFromImage(android.content.Context context, String image1Path, int frameRate, long duration, int scaleWidth, String bgMusicPath, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)单张 图片 生成视频文件,并可以指定 背景音乐FFmpegSessiongenerateVideoFromImage(android.content.Context context, List<ConcatFile> files, int frameRate, int width, int height, String bgMusicPath, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)多张 图片 生成视频文件,可以指定每张图片的时长,并可以指定 背景音乐FFmpegSessiongenerateVideoFromImage(String image1Path, int frameRate, long duration, int scaleWidth, String bgMusicPath, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)单张 图片 生成视频文件,并可以指定 背景音乐FFmpegSessiongenerateVideoFromImage(List<ConcatFile> files, int frameRate, int width, int height, String bgMusicPath, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)多张 图片 生成视频文件,可以指定每张图片的时长,并可以指定 背景音乐FFmpegSessiongetFrameAtIndex(android.content.Context context, String inputFile, int frameIndex, int scaleWidth, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback)检索 指定的 frameIndex 的帧并保存文件FFmpegSessiongetFrameAtIndex(String inputFile, int frameIndex, int scaleWidth, int quality, String outputFile, FFmpegSessionCompleteCallback completeCallback)检索 指定的 frameIndex 的帧并保存文件FFmpegSessiongetFrameAtIndex(String inputFile, int frameIndex, int scaleWidth, String outputFile, FFmpegSessionCompleteCallback completeCallback)检索 指定的 frameIndex 的帧并保存文件FFmpegSessiongetFrameAtTime(android.content.Context context, String inputFile, long startTimeMs, int scaleWidth, int quality, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback)检索指定时间位置的帧FFmpegSessiongetFrameAtTime(String inputFile, long startTimeMs, int scaleWidth, int quality, String outputFile, FFmpegSessionCompleteCallback completeCallback)检索指定时间位置的帧static TransformgetInstance()MediaInformationgetMediaFormat(String inputFile)获取媒体文件的formatMediaInformationSessiongetMediaInformation(String inputFile)同步调用 获取媒体文件 信息voidgetMediaInformationAsync(String inputFile, FFprobeSessionCompleteCallback completeCallback)异步调用 获取媒体文件的信息List<Session>getRunningSessions()StringgetVersion()返回 版本信息voidsetLogLevel(Level logLevel)配置全局 FFmpeg log输出的level,默认Level.AV_LOG_INFOFFmpegSessiontoOggByOpusEnc(android.content.Context context, String inputFile, long startTimeMs, long durationMs, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段FFmpegSessiontoOggByOpusEnc(android.content.Context context, String inputFile, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段FFmpegSessiontoOggByOpusEnc(String inputFile, long startTimeMs, long durationMs, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段FFmpegSessiontoOggByOpusEnc(String inputFile, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段FFmpegSessiontranscodeByX264(android.content.Context context, String inputFile, long startTimeMs, long durationMs, String preset, int crf, int scaleWidth, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)视频转码 preset PRESET_ULTRAFAST : 速度最快,压缩质量最低 PRESET_MEDIUM : 默认值 CRF CRF 的值 每 +6 ,大约缩小 一半的 bitRate 和 文件大小 CRF 的值 每 -6 ,大约为原来 2被的 bitRateFFmpegSessiontranscodeByX264(String inputFile, long startTimeMs, long durationMs, String preset, int crf, int scaleWidth, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)视频转码 preset PRESET_ULTRAFAST : 速度最快,压缩质量最低 PRESET_MEDIUM : 默认值 CRF CRF 的值 每 +6 ,大约缩小 一半的 bitRate 和 文件大小 CRF 的值 每 -6 ,大约为原来 2被的 bitRateFFmpegSessionvideoToGif(android.content.Context context, String inputFile, long startTimeMs, long durationMs, int scaleWidth, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转 GIF 输出文件默认选项: 1.FFmpegSessionvideoToGif(String inputFile, long startTimeMs, long durationMs, int scaleWidth, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转 GIF 输出文件默认选项: 1.FFmpegSessionvideoToMp3(android.content.Context context, String inputFile, long startTimeMs, long durationMs, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段FFmpegSessionvideoToMp3(android.content.Context context, String inputFile, android.net.Uri outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 为 mp3FFmpegSessionvideoToMp3(String inputFile, long startTimeMs, long durationMs, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段FFmpegSessionvideoToMp3(String inputFile, String outputFile, FFmpegSessionCompleteCallback completeCallback, StatisticsCallback statisticsCallback)video 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段
-
-
-
方法详细资料
-
addBGMusic
public FFmpegSession addBGMusic(@NonNull String videoInput, @NonNull String musicInput, @IntRange(from=-1L) long startTimeMs, @FloatRange(from=0.0,to=2.0) float originVolume, @FloatRange(from=0.0,to=2.0) float bgmVolume, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform给视频文件在原音轨上添加背景音乐,同时可调整原音轨和背景应该的音量Note: 如果背景音乐时长小于视频文件,则背景音乐将会循环
- 指定者:
addBGMusic在接口中Transform- 参数:
videoInput- 输入视频文件(file,url)musicInput- 输入背景应该文件(file,url)startTimeMs- 从背景音乐的那个时间点开始,如果要从0开始,可以使用 0 orTransform.TIME_UNSEToriginVolume- 视频文件原音量的 倍率(0.0 ~ 2.0),设为0 orTransform.VALUE_UNSET,则为原始音量bgmVolume- 背景应该音量的 倍率(0.0 ~ 2.0),设为0 orTransform.VALUE_UNSET,则为原始音量outputFile- 输出的视频文件completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/AudioVolume
-
addBGMusic
public FFmpegSession addBGMusic(@NonNull android.content.Context context, @NonNull String videoInput, @NonNull String musicInput, @IntRange(from=-1L) long startTimeMs, @FloatRange(from=0.0,to=2.0) float originVolume, @FloatRange(from=0.0,to=2.0) float bgmVolume, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform给视频文件在原音轨上添加背景音乐,同时可调整原音轨和背景应该的音量Note: 如果背景音乐时长小于视频文件,则背景音乐将会循环
- 指定者:
addBGMusic在接口中Transform- 参数:
context-ContextvideoInput- 输入视频文件(file,url)musicInput- 输入背景应该文件(file,url)startTimeMs- 从背景音乐的那个时间点开始,如果要从0开始,可以使用 0 orTransform.TIME_UNSEToriginVolume- 视频文件原音量的 倍率(0.0 ~ 2.0),设为0 orTransform.VALUE_UNSET,则为原始音量bgmVolume- 背景应该音量的 倍率(0.0 ~ 2.0),设为0 orTransform.VALUE_UNSET,则为原始音量outputFile- 输出的视频文件completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/AudioVolume
-
transcodeByX264
public FFmpegSession transcodeByX264(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @X264Preset String preset, @IntRange(from=-1L,to=51L) int crf, @IntRange(from=-1L) int scaleWidth, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform视频转码- preset
- PRESET_ULTRAFAST : 速度最快,压缩质量最低
- PRESET_MEDIUM : 默认值
- CRF
- CRF 的值 每 +6 ,大约缩小 一半的 bitRate 和 文件大小
- CRF 的值 每 -6 ,大约为原来 2被的 bitRate
- 指定者:
transcodeByX264在接口中Transform- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEpreset-Transform.X264Preset,x264预设,速度和压缩率的平衡,Transform.PRESET_ULTRAFAST最快压缩率最低;crf- (0~51), 0 为无损,51 质量最差。较低的值代表更改的质量。主观上合理的值应该在 17~28; 17~18在视觉上和源文件几乎无损; 你可以使用-1orTransform.SCALE_UNSETscaleWidth- 缩放width,请尽量使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSEToutputFile- 输出文件,可以以支持h264的封装格式,比如 .mp4|mkv|mov|m4v 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/H.264
-
transcodeByX264
public FFmpegSession transcodeByX264(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @X264Preset String preset, @IntRange(from=-1L,to=51L) int crf, @IntRange(from=-1L) int scaleWidth, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform视频转码- preset
- PRESET_ULTRAFAST : 速度最快,压缩质量最低
- PRESET_MEDIUM : 默认值
- CRF
- CRF 的值 每 +6 ,大约缩小 一半的 bitRate 和 文件大小
- CRF 的值 每 -6 ,大约为原来 2被的 bitRate
- 指定者:
transcodeByX264在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEpreset-Transform.X264Preset,x264预设,速度和压缩率的平衡,Transform.PRESET_ULTRAFAST最快压缩率最低;crf- (0~51), 0 为无损,51 质量最差。较低的值代表更改的质量。主观上合理的值应该在 17~28; 17~18在视觉上和源文件几乎无损; 你可以使用-1orTransform.SCALE_UNSETscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSEToutputFile- 输出文件,可以以支持h264的封装格式,比如 .mp4|mkv|mov|m4v 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/H.264
-
getFrameAtIndex
public FFmpegSession getFrameAtIndex(@NonNull String inputFile, @IntRange(from=-1L) int frameIndex, @IntRange(from=-1L) int scaleWidth, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
从接口复制的说明:Transform检索 指定的 frameIndex 的帧并保存文件- 指定者:
getFrameAtIndex在接口中Transform- 参数:
inputFile- 输入文件(file,url)frameIndex- 帧序号,从 0 开始,即媒体文件里的第几帧scaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSEToutputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtIndex
public FFmpegSession getFrameAtIndex(@NonNull String inputFile, @IntRange(from=-1L) int frameIndex, @IntRange(from=-1L) int scaleWidth, @IntRange(from=0L,to=31L) int quality, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
从接口复制的说明:Transform检索 指定的 frameIndex 的帧并保存文件- 指定者:
getFrameAtIndex在接口中Transform- 参数:
inputFile- 输入文件(file,url)frameIndex- 帧序号,从 0 开始,即媒体文件里的第几帧scaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSETquality- 质量,如果outputFile是png文件,请设置 0 orTransform.VALUE_UNSET;主要针对jpg格式压缩质量(0~31),1质量最高 建议设置为2outputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtIndex
public FFmpegSession getFrameAtIndex(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) int frameIndex, @IntRange(from=-1L) int scaleWidth, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
从接口复制的说明:Transform检索 指定的 frameIndex 的帧并保存文件- 指定者:
getFrameAtIndex在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)frameIndex- 帧序号,从 0 开始,即媒体文件里的第几帧scaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSEToutputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtTime
public FFmpegSession getFrameAtTime(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=0L) int scaleWidth, @IntRange(from=0L,to=31L) int quality, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
从接口复制的说明:Transform检索指定时间位置的帧- 指定者:
getFrameAtTime在接口中Transform- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSETquality- 质量,如果outputFile是png文件,请设置 0 orTransform.VALUE_UNSET;主要针对jpg格式压缩质量(0~31),1质量最高 建议设置为2outputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtTime
public FFmpegSession getFrameAtTime(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=0L) int scaleWidth, @IntRange(from=0L,to=31L) int quality, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
从接口复制的说明:Transform检索指定时间位置的帧- 指定者:
getFrameAtTime在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSETquality- 质量,如果outputFile是png文件,请设置 0 orTransform.VALUE_UNSET;主要针对jpg格式压缩质量(0~31),1质量最高 建议设置为2outputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
toOggByOpusEnc
public FFmpegSession toOggByOpusEnc(@NonNull String inputFile, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
toOggByOpusEnc在接口中Transform- 参数:
inputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
toOggByOpusEnc
public FFmpegSession toOggByOpusEnc(@NonNull android.content.Context context, @NonNull String inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
toOggByOpusEnc在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
toOggByOpusEnc
public FFmpegSession toOggByOpusEnc(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
toOggByOpusEnc在接口中Transform- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
toOggByOpusEnc
public FFmpegSession toOggByOpusEnc(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
toOggByOpusEnc在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
videoToMp3
public FFmpegSession videoToMp3(@NonNull String inputFile, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
videoToMp3在接口中Transform- 参数:
inputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
videoToMp3
public FFmpegSession videoToMp3(@NonNull android.content.Context context, @NonNull String inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 为 mp3- 指定者:
videoToMp3在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
videoToMp3
public FFmpegSession videoToMp3(@NonNull String inputFile, long startTimeMs, long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
videoToMp3在接口中Transform- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
videoToMp3
public FFmpegSession videoToMp3(@NonNull android.content.Context context, @NonNull String inputFile, long startTimeMs, long durationMs, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 指定者:
videoToMp3在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
videoToGif
public FFmpegSession videoToGif(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @IntRange(from=-1L) int scaleWidth, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转 GIF- 输出文件默认选项:
- 1. 输出文件帧率 8
- 2. 可以截取片段,通过指定 开始时间(startTimeMs) 和 持续时长(durationMs) 参数
- 3. 可同时缩放大小,通过指定scaleWidth参数,高度按原分辨率大小自适应
- 指定者:
videoToGif在接口中Transform- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSEToutputFile- 输出文件,必须以 .gif or .GIF 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
videoToGif
public FFmpegSession videoToGif(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=0L) long startTimeMs, @IntRange(from=0L) long durationMs, @IntRange(from=0L) int scaleWidth, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transformvideo 转 GIF- 输出文件默认选项:
- 1. 输出文件帧率 8
- 2. 可以截取片段,通过指定 开始时间(startTimeMs) 和 持续时长(durationMs) 参数
- 3. 可同时缩放大小,通过指定scaleWidth参数,高度按原分辨率大小自适应
- 指定者:
videoToGif在接口中Transform- 参数:
context-ContextstartTimeMs- 开始位置 ms,如果要从0开始,可以使用Transform.TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEscaleWidth- 缩放width,如果要和源文件size保持一致,请使用Transform.SCALE_UNSEToutputFile- 输出文件,必须以 .gif or .GIF 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
cutVideo
public FFmpegSession cutVideo(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform裁剪 Video 视频文件- Note:此裁剪将会重新编码
- 1. 此裁剪指定了 x264 编码,建议,输出文件format请指定.mp4或者.mkv
- 2. 如果媒体文件较长,请注意内存使用
- 3. 速度较慢
- 指定者:
cutVideo在接口中Transform- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始时间 ms,如果要从0开始,可以使用 0 orTransform.TIME_UNSETdurationMs- 裁剪时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件的绝对路径completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)- 另请参阅:
- FFmpeg精准时间切割视频文件, FFmpeg wiki:Seeking
-
cutVideo
public FFmpegSession cutVideo(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform裁剪 Video 视频文件- Note:此裁剪将会重新编码
- 1. 此裁剪指定了 x264 编码,所以,输出文件format请指定.mp4
- 2. 如果媒体文件较长,请注意内存使用
- 指定者:
cutVideo在接口中Transform- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用 0 orTransform.TIME_UNSETdurationMs- 裁剪时长 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件的UricompleteCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考Transform.cancel(long)
-
cutMedia
public FFmpegSession cutMedia(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform裁剪媒体文件(音频或者视频)- Note:此剪切采样copy不re encode
- 1. 速度快,但结尾有可能不准确
- 指定者:
cutMedia在接口中Transform- 参数:
inputFile- 输入文件(file、Uri)startTimeMs- 开始裁剪时间position,单位 毫秒 ms, 如果要从0开始,可以使用 0 orTransform.TIME_UNSETdurationMs- 时长,单位 毫秒 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件的绝对路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- Input seeking
-
cutMedia
public FFmpegSession cutMedia(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform裁剪媒体文件(音频或者视频)- 指定者:
cutMedia在接口中Transform- 参数:
context-ContextinputFile- 输入文件的绝对路径(file、Uri)startTimeMs- 开始裁剪时间position,单位 毫秒 ms,如果要从0开始,可以使用 0 orTransform.TIME_UNSETdurationMs- 时长,单位 毫秒 ms,如何要和源文件时长一致,可以使用Transform.TIME_UNSETorTransform.TIME_END_OF_SOURCEoutputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- Input seeking
-
generateVideoFromImage
public FFmpegSession generateVideoFromImage(@NonNull String image1Path, @IntRange(from=5L,to=30L) int frameRate, @IntRange(from=1000L) long duration, @IntRange(from=-1L) int scaleWidth, @Nullable String bgMusicPath, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform单张 图片 生成视频文件,并可以指定 背景音乐- 指定者:
generateVideoFromImage在接口中Transform- 参数:
image1Path- 输入图片文件的路径,可以是网络图片frameRate- 生成文件的帧率,Range(5,30)duration- 生成的视频文件时长,单位 ms, 最短 1000msscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSETbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的 绝对路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow
-
generateVideoFromImage
public FFmpegSession generateVideoFromImage(@NonNull android.content.Context context, @NonNull String image1Path, @IntRange(from=5L,to=30L) int frameRate, @IntRange(from=1000L) long duration, @IntRange(from=-1L) int scaleWidth, @Nullable String bgMusicPath, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform单张 图片 生成视频文件,并可以指定 背景音乐- 指定者:
generateVideoFromImage在接口中Transform- 参数:
context-Contextimage1Path- 输入图片文件的路径,可以是网络图片frameRate- 生成文件的帧率,Range(5,30)duration- 生成的视频文件时长,单位 ms, 最短 1000msscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用Transform.SCALE_UNSETbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow
-
generateVideoFromImage
public FFmpegSession generateVideoFromImage(@NonNull List<ConcatFile> files, @IntRange(from=5L,to=30L) int frameRate, @IntRange(from=-1L) int width, @IntRange(from=-1L) int height, @Nullable String bgMusicPath, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform多张 图片 生成视频文件,可以指定每张图片的时长,并可以指定 背景音乐- 指定者:
generateVideoFromImage在接口中Transform- 参数:
files- 要拼接的文件列表frameRate- 生成文件的帧率,Range(5,30)width- 生成视频的分辨率 widthheight- 生成视频的分辨率 heightbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的 绝对路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow, 基于FFmpeg的图片合成视频
-
generateVideoFromImage
public FFmpegSession generateVideoFromImage(@NonNull android.content.Context context, @NonNull List<ConcatFile> files, @IntRange(from=5L,to=30L) int frameRate, @IntRange(from=1L) int width, @IntRange(from=1L) int height, @Nullable String bgMusicPath, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform多张 图片 生成视频文件,可以指定每张图片的时长,并可以指定 背景音乐- 指定者:
generateVideoFromImage在接口中Transform- 参数:
context-Contextfiles- 要拼接的文件列表frameRate- 生成文件的帧率,Range(5,30)width- 生成视频的分辨率 widthheight- 生成视频的分辨率 heightbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow, 基于FFmpeg的图片合成视频
-
fastStart
public FFmpegSession fastStart(@NonNull String inputFile, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform使 mp4 文件在网络上播放时,能快速开始- 指定者:
fastStart在接口中Transform- 参数:
inputFile- 输入文件的绝对路径 file path, 必须是 mp4 文件outputFile- 输出文件的路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session
-
fastStart
public FFmpegSession fastStart(@NonNull android.content.Context context, @NonNull String inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform使 mp4 文件在网络上播放时,能快速开始- 指定者:
fastStart在接口中Transform- 参数:
context-ContextinputFile- 输入文件的绝对路径 file path, 必须是 mp4 文件outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session
-
fastStart
public FFmpegSession fastStart(@NonNull android.content.Context context, @NonNull android.net.Uri inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
从接口复制的说明:Transform使 mp4 文件在网络上播放时,能快速开始- 指定者:
fastStart在接口中Transform- 参数:
context-ContextinputFile- 输入文件的Uri, 必须是 mp4 文件outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session
-
getVersion
public String getVersion()
从接口复制的说明:Transform返回 版本信息- 指定者:
getVersion在接口中Transform- 返回:
- String - 版本信息
-
setLogLevel
public void setLogLevel(Level logLevel)
从接口复制的说明:Transform配置全局 FFmpeg log输出的level,默认Level.AV_LOG_INFO- 指定者:
setLogLevel在接口中Transform- 参数:
logLevel-Level
-
getMediaInformation
public MediaInformationSession getMediaInformation(String inputFile)
从接口复制的说明:Transform同步调用 获取媒体文件 信息- 指定者:
getMediaInformation在接口中Transform- 参数:
inputFile- 媒体文件(file、Url)- 返回:
MediaInformationSession- 获取媒体信息的session
-
getMediaFormat
public MediaInformation getMediaFormat(String inputFile)
从接口复制的说明:Transform获取媒体文件的format- 指定者:
getMediaFormat在接口中Transform- 参数:
inputFile- 媒体文件(file、Url)- 返回:
MediaInformation- 媒体文件的 format
-
getMediaInformationAsync
public void getMediaInformationAsync(String inputFile, FFprobeSessionCompleteCallback completeCallback)
从接口复制的说明:Transform异步调用 获取媒体文件的信息- 指定者:
getMediaInformationAsync在接口中Transform- 参数:
inputFile- 媒体文件(file、Url)completeCallback-FFprobeSessionCompleteCallback
-
getRunningSessions
@NonNull public List<Session> getRunningSessions()
从接口复制的说明:Transform- 指定者:
getRunningSessions在接口中Transform- 返回:
- List
- 如果没有运行状态的session,返回空集合
-
cancel
public void cancel(long sessionId)
从接口复制的说明:Transform终止正在执行的任务,此方法不会等待term终止完成,会立即返回- 指定者:
cancel在接口中Transform- 参数:
sessionId-AbstractSession.getSessionId()
-
enableDebug
public void enableDebug(boolean enable)
从接口复制的说明:Transform开启 or 关闭 Debug,true则输出日志- 指定者:
enableDebug在接口中Transform- 参数:
enable- true or false
-
getInstance
public static Transform getInstance()
-
-