Brbcod1
Brbcod1

Reputation: 165

Better performance ffmpeg android

I'm running this command on ffmpeg for android:

-i MYVIDEO -map 0:s:0? -c:v copy -preset veryfast -c:a copy -hls_flags single_file outputFile.m3u8 -frames:v 1 -q:v 2 outImage.jpg -y

this is the ffmpeg library I'm using FFmpeg-Android-Java

The speed of this command on the device is around 0.0900x (maximum I got is 0.1000x): I need the speed to increase.

Is it possible to increase the performance of ffmpeg or it depends on the device?

Ideally, I would like the 'time' parameter that you see in the output to match the elapsed time, so each second elapsed is one second processed (right now, it needs around 15/20 seconds before the 'time' parameter reaches '00:00:01.00').

What do you suggest?

This is the log of ffmpeg when running the command:

ffmpeg version n4.0-39-gda39990 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.9.x (GCC) 20150123 (prerelease)
configuration: --target-os=linux --cross-prefix=/root/bravobit/ffmpeg-android/toolchain-android/bin/arm-linux-androideabi- --arch=arm --cpu=cortex-a8 --enable-runtime-cpudetect --sysroot=/root/bravobit/ffmpeg-android/toolchain-android/sysroot --enable-pic --enable-libx264 --enable-ffprobe --enable-libopus --enable-libvorbis --enable-libfdk-aac --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-fontconfig --enable-libvpx --enable-libass --enable-yasm --enable-pthreads --disable-debug --enable-version3 --enable-hardcoded-tables --disable-ffplay --disable-linux-perf --disable-doc --disable-shared --enable-static --enable-runtime-cpudetect --enable-nonfree --enable-network --enable-avresample --enable-avformat --enable-avcodec --enable-indev=lavfi --enable-hwaccels --enable-ffmpeg --enable-zlib --enable-gpl --enable-small --enable-nonfree --pkg-config=pkg-config --pkg-config-flags=--static --prefix=/root/bravobit/ffmpeg-android/build/armeabi-v7a --extra-cflags='-I/root/bravobit/ffmpeg-android/toolchain-android/include -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fno-strict-overflow -fstack-protector-all' --extra-ldflags='-L/root/bravobit/ffmpeg-android/toolchain-android/lib -Wl,-z,relro -Wl,-z,now -pie' --extra-cxxflags=
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
.....
.....
.....
frame= 8 fps=0.0 q=-1.0 q=0.0 size=N/A time=00:00:00.09 bitrate=N/A speed=0.16x 
frame= 11 fps=9.0 q=-1.0 q=0.0 size=N/A time=00:00:00.14 bitrate=N/A dup=0 drop=3 speed=0.12x 
frame= 13 fps=7.1 q=-1.0 q=0.0 size=N/A time=00:00:00.17 bitrate=N/A dup=0 drop=5 speed=0.0977x 
frame= 17 fps=7.1 q=-1.0 q=0.0 size=N/A time=00:00:00.24 bitrate=N/A dup=0 drop=9 speed=0.103x 
frame= 20 fps=6.9 q=-1.0 q=0.0 size=N/A time=00:00:00.29 bitrate=N/A dup=0 drop=12 speed=0.102x 
frame= 24 fps=6.7 q=-1.0 q=0.0 size=N/A time=00:00:00.36 bitrate=N/A dup=0 drop=16 speed=0.102x 
frame= 31 fps=6.6 q=-1.0 q=0.0 size=N/A time=00:00:00.47 bitrate=N/A dup=0 drop=23 speed=0.102x 
frame= 34 fps=6.4 q=-1.0 q=0.0 size=N/A time=00:00:00.52 bitrate=N/A dup=0 drop=26 speed=0.0996x 
frame= 37 fps=6.3 q=-1.0 q=0.0 size=N/A time=00:00:00.57 bitrate=N/A dup=0 drop=29 speed=0.0989x 
frame= 40 fps=6.2 q=-1.0 q=0.0 size=N/A time=00:00:00.63 bitrate=N/A dup=0 drop=32 speed=0.0982x 
frame= 43 fps=6.1 q=-1.0 q=0.0 size=N/A time=00:00:00.68 bitrate=N/A dup=0 drop=35 speed=0.0971x 
frame= 46 fps=6.1 q=-1.0 q=0.0 size=N/A time=00:00:00.73 bitrate=N/A dup=0 drop=38 speed=0.0967x 
frame= 50 fps=6.1 q=-1.0 q=0.0 size=N/A time=00:00:00.79 bitrate=N/A dup=0 drop=42 speed=0.0973x 
frame= 53 fps=5.9 q=-1.0 q=0.0 size=N/A time=00:00:00.84 bitrate=N/A dup=0 drop=45 speed=0.0947x 
frame= 56 fps=5.8 q=-1.0 q=0.0 size=N/A time=00:00:00.89 bitrate=N/A dup=0 drop=48 speed=0.0935x 
frame= 59 fps=5.8 q=-1.0 q=0.0 size=N/A time=00:00:00.94 bitrate=N/A dup=0 drop=51 speed=0.0934x 
frame= 62 fps=5.8 q=-1.0 q=0.0 size=N/A time=00:00:00.99 bitrate=N/A dup=0 drop=54 speed=0.0934x 
frame= 64 fps=5.7 q=-1.0 q=0.0 size=N/A time=00:00:01.03 bitrate=N/A dup=0 drop=56 speed=0.0921x 

Upvotes: 1

Views: 1662

Answers (1)

utkuberaty
utkuberaty

Reputation: 31

I didn't use your FFmpeg library but video encode and decode process are changes depends on device specification. And Android devices are very bad about this. But you can speed up the process with changing video specs. For example you can change the output size with smaller sizes. You can check this blog for learn more about how yo make your FFmpeg command more efficient.

Upvotes: 1

Related Questions