相关疑难解决方法(0)

ffmpeg命令用于以较小的文件大小以较低的比特率进行更快的编码

我目前在我的Android应用程序上使用ffmpeg的实现.我允许用户在我的应用程序中拍摄短视频,然后当他们将它们上传到服务器时,我正在使用ffmpeg来缩小它们以减小文件大小,因此它们不会通过网络传递大量数据.

问题是,它需要永远在Android设备上编码视频.这些视频通常不超过45秒,编码可能需要20分钟.我已经在ffmpeg命令行上玩了一些不同的开关/参数,我现在可以在更舒适的时间使用它,但文件大小要大得多.我只是不确定我应该使用哪种编解码器(编码速度最快但输出质量不错),ffmpeg如何根据编码速度等处理大小(宽高比)的变化.

这是我一直在使用的两个命令.第一个输出我想要的文件大小/质量,但它只需要太长时间来编码,更不用说它使我的设备变得非常热,而它的编码时间如此之长:

ffmpeg -i input.mp4 -b:v 1024k -c:a copy -vf scale=960:540 output.mp4
Run Code Online (Sandbox Code Playgroud)

我已经调整了一些比特率,并将比例尺改为更小的尺寸,但我不想让视频非常小(在比例方面)以实现更快的编码.第二个命令的速度要快得多,但文件大小要大得多:

ffmpeg -i input.mp4 -vcodec libx264 -preset fast -c:a copy -s 960x540 output.mp4
Run Code Online (Sandbox Code Playgroud)

我想找到一个快乐的媒体(较小的文件大小,但编码更快)保持视频比例尺寸接近原始.ffmpeg只有很多不同的参数/开关,很难围绕我应该做的事情.

编辑:添加ffmpeg输出.

ffmpeg -i input.mp4 -vcodec libx264 -crf 30 -preset veryfast -c:a copy -s 960x540 output.mp4

    09-13 11:06:28.330 10881-10881/someapp D/home: ffmpeg version n3.0.1 Copyright (c) 2000-2016 the FFmpeg developers
09-13 11:06:28.330 10881-10881/someapp D/home:   built with gcc 4.8 (GCC)
09-13 11:06:28.331 10881-10881/someapp D/home:   configuration: --target-os=linux --cross-prefix=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/home/vagrant/SourceCode/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-libass --enable-libfreetype --enable-libfribidi …
Run Code Online (Sandbox Code Playgroud)

video ffmpeg video-encoding android-ffmpeg

12
推荐指数
1
解决办法
2万
查看次数

标签 统计

android-ffmpeg ×1

ffmpeg ×1

video ×1

video-encoding ×1