Лучшая производительность ffmpeg android - PullRequest
0 голосов
/ 09 марта 2020

я запускаю эту команду в ffmpeg для 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

это библиотека ffmpeg, которую я использую FFmpeg- Android - Java

Скорость этой команды на устройстве составляет около 0,0900x (максимум, который я получил - 0,1000x): мне нужно увеличить скорость.

Можно ли увеличить производительность ffmpeg или зависит от устройства?

В идеале мне бы хотелось, чтобы параметр «время», который вы видите в выходных данных, соответствовал истекшему времени, поэтому каждая прошедшая секунда обрабатывается за одну секунду (сейчас требуется около 15 /. За 20 секунд до того, как параметр 'time' достигнет '00: 00: 01.00 ').

Что вы предлагаете?

Это журнал ffmpeg при выполнении команды:

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 

1 Ответ

1 голос
/ 09 марта 2020

Я не использовал вашу библиотеку FFmpeg, но процесс кодирования и декодирования видео зависит от характеристик устройства. И Android устройства очень плохо об этом. Но вы можете ускорить процесс с изменением характеристик видео. Например, вы можете изменить размер вывода с меньшими размерами. Вы можете проверить этот блог, чтобы узнать больше о том, как сделать вашу команду FFmpeg более эффективной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...