不关心质量的最快ffmpeg

时间:2019-05-30 15:25:50

标签: ffmpeg

我想将任何视频尽快转换为.mp4,而不必担心质量损失。我使用了下一个命令,可以在37秒内完成10秒钟的视频。

string path = string.Empty;
            string xmlInputData = string.Empty;
            try
            {
               path = "XML file path";
                xmlInputData = File.ReadAllText(path);
                Messages _Messages = Deserialize<Messages>(xmlInputData);
            }
            catch (Exception ex)
            {
                throw;
            }

        }
        public static T Deserialize<T>(string input) where T : class
        {
            System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(typeof(T));

            using (StringReader sr = new StringReader(input))
            {
                return (T)ser.Deserialize(sr);
            }
        }

然而,对于10秒的视频而言,37秒仍然太长。我可以对命令进行任何改进以减少执行时间吗?


编辑(其他信息):

即使命令通常可用于任何FFmpeg(视FFmpeg版本而定,也有一些变体),我仍在使用FFmpeg Android(-vcodec h264 -crf 32 -preset ultrafast )。

到目前为止,在我的案例中使用的命令给出了最快的结果:

implementation 'com.writingminds:FFmpegAndroid:0.3.2'

常规FFmpeg命令应为

    mFfmpeg.execute(
        arrayOf(
            "-i" , videoCopy?.path,
            "-vcodec", "h264",
            "-crf", "32",
            "-preset", "ultrafast",
            "-y", uploadFile?.path), 
        object : ExecuteBinaryResponseHandler() { ... }

"-ffmpeg -i {video?.path} -vcodec h264 -crf 32 -preset ultrafast -y {uploadFile?.path}" 是我的原始视频videoFile是我要保存结果的uploadFile

在Samsung J3(SM-J320M,您可以在线找到其规格)中,该命令花费了上述37秒。

执行此命令后,FFmpeg返回的第一条onProgress消息将打印:

File

0 个答案:

没有答案