Reputation: 165
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
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