接口 Transform
-
- 所有已知实现类:
Transformer
public interface Transform定义媒体文件转换功能- 作者:
- 💎 Li Junchao
-
-
嵌套类概要
嵌套类 修饰符和类型 接口 说明 static interfaceTransform.X264Preset
-
字段概要
字段 修饰符和类型 字段 说明 static StringPRESET_FAST快速:5static StringPRESET_FASTER较快:4static StringPRESET_MEDIUM_DEFAUT中等速度:6static StringPRESET_PLACEBO慢到需要安慰:10static StringPRESET_SLOW慢速:7static StringPRESET_SLOWER较慢:8static StringPRESET_SUPERFAST超快:2static StringPRESET_ULTRAFAST极快:1static StringPRESET_VERYFAST非常快:3static StringPRESET_VERYSLOW非常慢:9static intSCALE_UNSET无缩放static StringTAGstatic longTIME_END_OF_SOURCE表示源文件的结尾时间static longTIME_UNSET表示不设置时间static intVALUE_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)检索指定时间位置的帧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
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)
给视频文件在原音轨上添加背景音乐,同时可调整原音轨和背景应该的音量Note: 如果背景音乐时长小于视频文件,则背景音乐将会循环
- 参数:
videoInput- 输入视频文件(file,url)musicInput- 输入背景应该文件(file,url)startTimeMs- 从背景音乐的那个时间点开始,如果要从0开始,可以使用 0 orTIME_UNSEToriginVolume- 视频文件原音量的 倍率(0.0 ~ 2.0),设为0 orVALUE_UNSET,则为原始音量bgmVolume- 背景应该音量的 倍率(0.0 ~ 2.0),设为0 orVALUE_UNSET,则为原始音量outputFile- 输出的视频文件completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/AudioVolume
-
addBGMusic
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)
给视频文件在原音轨上添加背景音乐,同时可调整原音轨和背景应该的音量Note: 如果背景音乐时长小于视频文件,则背景音乐将会循环
- 参数:
context-ContextvideoInput- 输入视频文件(file,url)musicInput- 输入背景应该文件(file,url)startTimeMs- 从背景音乐的那个时间点开始,如果要从0开始,可以使用 0 orTIME_UNSEToriginVolume- 视频文件原音量的 倍率(0.0 ~ 2.0),设为0 orVALUE_UNSET,则为原始音量bgmVolume- 背景应该音量的 倍率(0.0 ~ 2.0),设为0 orVALUE_UNSET,则为原始音量outputFile- 输出的视频文件completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/AudioVolume
-
transcodeByX264
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)
视频转码- preset
- PRESET_ULTRAFAST : 速度最快,压缩质量最低
- PRESET_MEDIUM : 默认值
- CRF
- CRF 的值 每 +6 ,大约缩小 一半的 bitRate 和 文件大小
- CRF 的值 每 -6 ,大约为原来 2被的 bitRate
- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEpreset-Transform.X264Preset,x264预设,速度和压缩率的平衡,PRESET_ULTRAFAST最快压缩率最低;crf- (0~51), 0 为无损,51 质量最差。较低的值代表更改的质量。主观上合理的值应该在 17~28; 17~18在视觉上和源文件几乎无损; 你可以使用-1orSCALE_UNSETscaleWidth- 缩放width,请尽量使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSEToutputFile- 输出文件,可以以支持h264的封装格式,比如 .mp4|mkv|mov|m4v 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/H.264
-
transcodeByX264
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)
视频转码- preset
- PRESET_ULTRAFAST : 速度最快,压缩质量最低
- PRESET_MEDIUM : 默认值
- CRF
- CRF 的值 每 +6 ,大约缩小 一半的 bitRate 和 文件大小
- CRF 的值 每 -6 ,大约为原来 2被的 bitRate
- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEpreset-Transform.X264Preset,x264预设,速度和压缩率的平衡,PRESET_ULTRAFAST最快压缩率最低;crf- (0~51), 0 为无损,51 质量最差。较低的值代表更改的质量。主观上合理的值应该在 17~28; 17~18在视觉上和源文件几乎无损; 你可以使用-1orSCALE_UNSETscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSEToutputFile- 输出文件,可以以支持h264的封装格式,比如 .mp4|mkv|mov|m4v 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/H.264
-
getFrameAtIndex
FFmpegSession getFrameAtIndex(@NonNull String inputFile, @IntRange(from=-1L) int frameIndex, @IntRange(from=-1L) int scaleWidth, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
检索 指定的 frameIndex 的帧并保存文件- 参数:
inputFile- 输入文件(file,url)frameIndex- 帧序号,从 0 开始,即媒体文件里的第几帧scaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSEToutputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtIndex
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)
检索 指定的 frameIndex 的帧并保存文件- 参数:
inputFile- 输入文件(file,url)frameIndex- 帧序号,从 0 开始,即媒体文件里的第几帧scaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSETquality- 质量,如果outputFile是png文件,请设置 0 orVALUE_UNSET;主要针对jpg格式压缩质量(0~31),1质量最高 建议设置为2outputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtIndex
FFmpegSession getFrameAtIndex(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) int frameIndex, @IntRange(from=0L) int scaleWidth, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
检索 指定的 frameIndex 的帧并保存文件- 参数:
context-ContextinputFile- 输入文件(file,url)frameIndex- 帧序号,从 0 开始,即媒体文件里的第几帧scaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSEToutputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtTime
FFmpegSession getFrameAtTime(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) int scaleWidth, @IntRange(from=0L,to=31L) int quality, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback)
检索指定时间位置的帧- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSETquality- 质量,如果outputFile是png文件,请设置 0 orVALUE_UNSET;主要针对jpg格式压缩质量(0~31),1质量最高 建议设置为2outputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
getFrameAtTime
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)
检索指定时间位置的帧- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSETquality- 质量,如果outputFile是png文件,请设置 0 orVALUE_UNSET;主要针对jpg格式压缩质量(0~31),1质量最高 建议设置为2outputFile- 输出文件,必须以 .jpg|png 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- https://trac.ffmpeg.org/wiki/Encode/MPEG-4
-
toOggByOpusEnc
FFmpegSession toOggByOpusEnc(@NonNull String inputFile, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
inputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
toOggByOpusEnc
FFmpegSession toOggByOpusEnc(@NonNull android.content.Context context, @NonNull String inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
context-ContextinputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
toOggByOpusEnc
FFmpegSession toOggByOpusEnc(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
toOggByOpusEnc
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)
video 转换 audio track 通过 opus 编码封装 为 ogg,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .ogg 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
videoToMp3
FFmpegSession videoToMp3(@NonNull String inputFile, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
inputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
videoToMp3
FFmpegSession videoToMp3(@NonNull android.content.Context context, @NonNull String inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转换 audio track 为 mp3- 参数:
context-ContextinputFile- 输入文件(file,url)outputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
videoToMp3
FFmpegSession videoToMp3(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
videoToMp3
FFmpegSession videoToMp3(@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)
video 转换 audio track 为 mp3,通过指定 startTimeMs 和 durationMs 可裁剪出想要的片段- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件,必须以 .mp3 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
videoToGif
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)
video 转 GIF- 输出文件默认选项:
- 1. 输出文件帧率 8
- 2. 可以截取片段,通过指定 开始时间(startTimeMs) 和 持续时长(durationMs) 参数
- 3. 可同时缩放大小,通过指定scaleWidth参数,高度按原分辨率大小自适应
- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSEToutputFile- 输出文件,必须以 .gif or .GIF 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
videoToGif
FFmpegSession videoToGif(@NonNull android.content.Context context, @NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @IntRange(from=-1L) int scaleWidth, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
video 转 GIF- 输出文件默认选项:
- 1. 输出文件帧率 8
- 2. 可以截取片段,通过指定 开始时间(startTimeMs) 和 持续时长(durationMs) 参数
- 3. 可同时缩放大小,通过指定scaleWidth参数,高度按原分辨率大小自适应
- 参数:
context-ContextstartTimeMs- 开始位置 ms,如果要从0开始,可以使用TIME_UNSETdurationMs- 转换时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEscaleWidth- 缩放width,如果要和源文件size保持一致,请使用SCALE_UNSEToutputFile- 输出文件,必须以 .gif or .GIF 结尾completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
cutVideo
FFmpegSession cutVideo(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
裁剪 Video 视频文件- Note:此裁剪将会重新编码
- 1. 此裁剪指定了 x264 编码,建议,输出文件format请指定.mp4或者.mkv
- 2. 如果媒体文件较长,请注意内存使用
- 3. 速度较慢
- 参数:
inputFile- 输入文件(file,url)startTimeMs- 开始时间 ms,如果要从0开始,可以使用 0 orTIME_UNSETdurationMs- 裁剪时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件的绝对路径completeCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)- 另请参阅:
- FFmpeg精准时间切割视频文件, FFmpeg wiki:Seeking
-
cutVideo
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)
裁剪 Video 视频文件- Note:此裁剪将会重新编码
- 1. 此裁剪指定了 x264 编码,所以,输出文件format请指定.mp4
- 2. 如果媒体文件较长,请注意内存使用
- 参数:
context-ContextinputFile- 输入文件(file,url)startTimeMs- 开始位置 ms,如果要从0开始,可以使用 0 orTIME_UNSETdurationMs- 裁剪时长 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件的UricompleteCallback- task完成的callbackFFmpegSessionCompleteCallbackstatisticsCallback- task执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次任务的session,取消本次任务请参考cancel(long)
-
cutMedia
FFmpegSession cutMedia(@NonNull String inputFile, @IntRange(from=-1L) long startTimeMs, @IntRange(from=-1L) long durationMs, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
裁剪媒体文件(音频或者视频)- Note:此剪切采样copy不re encode
- 1. 速度快,但结尾有可能不准确
- 参数:
inputFile- 输入文件(file、Uri)startTimeMs- 开始裁剪时间position,单位 毫秒 ms, 如果要从0开始,可以使用 0 orTIME_UNSETdurationMs- 时长,单位 毫秒 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件的绝对路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- Input seeking
-
cutMedia
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)
裁剪媒体文件(音频或者视频)- 参数:
context-ContextinputFile- 输入文件的绝对路径(file、Uri)startTimeMs- 开始裁剪时间position,单位 毫秒 ms,如果要从0开始,可以使用 0 orTIME_UNSETdurationMs- 时长,单位 毫秒 ms,如何要和源文件时长一致,可以使用TIME_UNSETorTIME_END_OF_SOURCEoutputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- Input seeking
-
generateVideoFromImage
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)
单张 图片 生成视频文件,并可以指定 背景音乐- 参数:
image1Path- 输入图片文件的路径,可以是网络图片frameRate- 生成文件的帧率,Range(5,30)duration- 生成的视频文件时长,单位 ms, 最短 1000msscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSETbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的 绝对路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow
-
generateVideoFromImage
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)
单张 图片 生成视频文件,并可以指定 背景音乐- 参数:
context-Contextimage1Path- 输入图片文件的路径,可以是网络图片frameRate- 生成文件的帧率,Range(5,30)duration- 生成的视频文件时长,单位 ms, 最短 1000msscaleWidth- 缩放width,请使用偶数,如果要和源文件size保持一致,请使用SCALE_UNSETbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow
-
generateVideoFromImage
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)
多张 图片 生成视频文件,可以指定每张图片的时长,并可以指定 背景音乐- 参数:
files- 要拼接的文件列表frameRate- 生成文件的帧率,Range(5,30)width- 生成视频的分辨率 widthheight- 生成视频的分辨率 heightbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的 绝对路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow, 基于FFmpeg的图片合成视频
-
generateVideoFromImage
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)
多张 图片 生成视频文件,可以指定每张图片的时长,并可以指定 背景音乐- 参数:
context-Contextfiles- 要拼接的文件列表frameRate- 生成文件的帧率,Range(5,30)width- 生成视频的分辨率 widthheight- 生成视频的分辨率 heightbgMusicPath- 背景音乐,null无背景音乐outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session- 另请参阅:
- https://trac.ffmpeg.org/wiki/Slideshow, 基于FFmpeg的图片合成视频
-
fastStart
FFmpegSession fastStart(@NonNull String inputFile, @NonNull String outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
使 mp4 文件在网络上播放时,能快速开始- 参数:
inputFile- 输入文件的绝对路径 file path, 必须是 mp4 文件outputFile- 输出文件的路径completeCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session
-
fastStart
FFmpegSession fastStart(@NonNull android.content.Context context, @NonNull String inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
使 mp4 文件在网络上播放时,能快速开始- 参数:
context-ContextinputFile- 输入文件的绝对路径 file path, 必须是 mp4 文件outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session
-
fastStart
FFmpegSession fastStart(@NonNull android.content.Context context, @NonNull android.net.Uri inputFile, @NonNull android.net.Uri outputFile, @Nullable FFmpegSessionCompleteCallback completeCallback, @Nullable StatisticsCallback statisticsCallback)
使 mp4 文件在网络上播放时,能快速开始- 参数:
context-ContextinputFile- 输入文件的Uri, 必须是 mp4 文件outputFile- 输出文件的UricompleteCallback- 任务完成后的callbackFFmpegSessionCompleteCallbackstatisticsCallback- 任务执行期间的callbackStatisticsCallback- 返回:
FFmpegSession- 本次session
-
getMediaInformation
MediaInformationSession getMediaInformation(String inputFile)
同步调用 获取媒体文件 信息- 参数:
inputFile- 媒体文件(file、Url)- 返回:
MediaInformationSession- 获取媒体信息的session
-
getMediaFormat
MediaInformation getMediaFormat(String inputFile)
获取媒体文件的format- 参数:
inputFile- 媒体文件(file、Url)- 返回:
MediaInformation- 媒体文件的 format
-
getMediaInformationAsync
void getMediaInformationAsync(String inputFile, FFprobeSessionCompleteCallback completeCallback)
异步调用 获取媒体文件的信息- 参数:
inputFile- 媒体文件(file、Url)completeCallback-FFprobeSessionCompleteCallback
-
getVersion
String getVersion()
返回 版本信息- 返回:
- String - 版本信息
-
setLogLevel
void setLogLevel(Level logLevel)
配置全局 FFmpeg log输出的level,默认Level.AV_LOG_INFO- 参数:
logLevel-Level
-
cancel
void cancel(long sessionId)
终止正在执行的任务,此方法不会等待term终止完成,会立即返回- 参数:
sessionId-AbstractSession.getSessionId()
-
cancel
void cancel()
发送 中断 信号,终止所有任务
-
enableDebug
void enableDebug(boolean enable)
开启 or 关闭 Debug,true则输出日志- 参数:
enable- true or false
-
-