Я пытаюсь сжать видео с помощью FFMPEG и эта библиотека: https://github.com/guardianproject/android-ffmpeg-javaСжатие видео FFMPEG не работает
Я импортировал ffmpeglib как модуль в моем проекте. Этот код используется для сжатия:
public class MainActivity extends Activity {
private ArrayList<Object> listVideoPaths = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getGalleryVideos();
File videoFolderFile = new File("/storage/emulated/0/DCIM/Camera/");
if(videoFolderFile.exists())
Log.e("TEST FFMPEG", "video folder exist");
else
Log.e("TEST FFMPEG", "video folder DON'T exist");
File videoInputFile = new File(listVideoPaths.get(0).toString());
if(videoInputFile.exists())
Log.e("TEST FFMPEG", "video input file exist");
else
Log.e("TEST FFMPEG", "video input file DON'T exist");
File videoOutputFile = new File(videoFolderFile,"output.mp4");
if(videoOutputFile.exists())
Log.e("TEST FFMPEG", "video output file exist");
else
Log.e("TEST FFMPEG", "video output file DON'T exist");
FfmpegController ffmpegController;
try {
ffmpegController = new FfmpegController(this,videoFolderFile);
Clip mediaIn = new Clip();
mediaIn.path = videoInputFile.getAbsolutePath();
mediaIn.videoFps = "25";
ffmpegController.convertToMPEG(mediaIn, videoOutputFile.getAbsolutePath(), new ShellUtils.ShellCallback() {
@Override
public void shellOut(String shellLine) {
Log.e("TEST FFMPEG", "shellOut - " + shellLine);
}
@Override
public void processComplete(int exitValue) {
Log.e("TEST FFMPEG", "proccess complete - " + exitValue);
}
});
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}finally {
if(videoOutputFile.exists())
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file exist");
else
Log.e("TEST FFMPEG", "finished ffmpeg ---> video output file DON'T exist");
}
}
private void getGalleryVideos(){
Cursor videoCursor = null;
try {
final String[] columns = { Media.DATA,
Media._ID,
Media.DATE_ADDED };
final String orderBy = Media.DATE_ADDED;
videoCursor = getContentResolver().query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, columns,
null, null, orderBy);
if (videoCursor != null && videoCursor.getCount() > 0) {
while (videoCursor.moveToNext()) {
int dataColumnIndex = videoCursor
.getColumnIndex(Media.DATA);
listVideoPaths.add(videoCursor
.getString(dataColumnIndex));
}
}
Collections.sort(listVideoPaths,new Comparator());
} catch (Exception e) {
e.printStackTrace();
} finally {
if (videoCursor != null) {
if (!videoCursor.isClosed()) {
videoCursor.close();
}
}
}
}
}
У меня нет ошибки, но видео не воспроизводится. Файл журнала:
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: папка видео существует 07-30 14: 31: 57,389
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: входной файл видео существует 07-30 14: 31: 57.389
3096-3096/douglasanunciacao.androidffmpegjavateste E/Teste FFMPEG: вывода видео файл не существует 07-30 14: 31: 58,363
3096-3096/douglasanunciacao. androidffmpegjavateste E/TESTE FFMPEG: shellOut - /data/data/douglasanunciacao.androidffmpegjav ateste/app_bin/ffmpeg -y -i /storage/emulated/0/DCIM/Camera/VID_20150730_142330563.mp4 -f mpeg /storage/emulated/0/DCIM/Camera/output.mp4 07-30 14: 31: 58.385
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - ПРЕДУПРЕЖДЕНИЕ: линкер: /data/data/douglasanunciacao.androidffmpegjavateste/app_bin/ffmpeg имеет текст переездов. Это растрачивает память и предотвращает затвердение. упрочнение. Пожалуйста исправьте. 07-30 14: 31: 58,390
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - FFmpeg версия 0.11.1 Copyright (с) 2000-2012 в FFmpeg разработчики 07-30 14: 31: 58,391
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - построен на 22 декабря 2014 12:52:34 с GCC 4.6 20120106 (07-30) предварительной 14: 31: 58,391
3096-3182/douglasanunciacao. androidffmpegjavateste E/TESTE FFMPEG: shellOut - конфигурация: --arch = arm --cpu = cortex-a8 --target-os = linux --enable-runtime-cpudetect --prefix =/data/data/info.guardianproject .ffmpeg/app_opt --enable-pic --disable-shared --enable-static --cros s-prefix =/home/n8fr8/dev/android/ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --sysroot =/home/n8fr8/dev/android/ndk/platform/android-16/arch-arm --extra-cflags = '- I ../ x264 -mfloat-abi = softfp -mfpu = neon -fPIE -pie' --extra-ldflags = '- L ../ x264 -fPIE -pie '--enable-version3 --enable-gpl --disable-doc --enable-yasm --enable-decoders --enable-encoders --enable-muxers --enable-demuxers --enable-parsers --enable-protocols --enable-filters --enable-avresample --enable-libfreetype --disable-indevs --enable-indev = lavfi --disable-outdevs --enable-hwaccels --enable -ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-libx264 --enable-zlib 07-30 14: 31: 58.391
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - libavutil 51. 54.100/51. 54.100 07-30 14: 31: 58.391-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кодек 54. 23.100/23.100 54. 07-30 14: 31: 58,391 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - libavformat 54 6.100/54. 6.100 07-30 14: 31: 58.391 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - libavdevice 54. 0.100/54. 0.100 07-30 14: 31: 58.391 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - libavfilter 2. 77,100/77,100 2. 07-30 14: 31: 58,391 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - libswscale 2. 1.100/1.100 2. 07 -30 14: 31: 58,391 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - libswresample 0. 15,100/15,100 0. 07-30 14: 31: 58.391 3096-3182/douglasanunciacao.androidffmpegjavateste E/Teste FFMPEG: shellOut - libpostproc 52. 0,100/0,100 52. 07-30 14: 31: 58,868 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - вход # 0, MOV, MP4, M4A, 3gp, 3g2 , mj2, от '/ storage/emulated/0/DCIM/Camera/VID_20150730_142330563 .mp4' : 07-30 14: 31: 58,869 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - Метаданные: 07-30 14: 31: 58,869
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - major_brand: MP42 07-30 14: 31: 58,870
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - minor_version: 0 07-30 14: 31: 58,871
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - compatible_brands: isommp42 07-30 14: 31: 58,872
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - creation_time: 2015-07-30 17:23:34 07-30 14: 31: 58.873 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - Продолжительность: 00: 00: 01.89, начало: 0.000000 , битрейт: 17571 кб/с 07-30 14: 31: 58,874
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - поток # 0: 0 (рус): Видео: h264 (High) (AVC1/ ), yuv420p, 1920x1080, 15874 kb/s, SAR 65536: 65536 DAR 16: 9, 23.90 fps, 23.92 tbr, 90k tbn, 180k tbc 07-30 14: 31: 58.875 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - Метаданные: 07-30 14: 31: 58.876
3096-3182/douglasanunciacao.androidffmpegjavateste E/TES TE FFMPEG: shellOut - поворот: 270 07-30 14: 31: 58,877
3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - CREATION_TIME: 2015-07-30 17:23:34 07-30 14: 31: 58,878 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - handler_name: VideoHandle 07-30 14: 31: 58,878 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - поток # 0 : 1 (рус): Аудио: AAC (mp4a/ 0x6134706D), 48000 Гц, стерео, s16, 127 кб/с 07-30 14: 31: 58,878
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - Метаданные: 07-30 14: 31: 58.878 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - CREATION_TIME: 2015-07-30 17:23:34 07-30 14: 31: 58,878 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG : shellOut - handler_name: SoundHandle 07-30 14: 31: 58,882 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - [буфера @ 0xb5cce0a0] ш: 1920 ч: 1080 pixfmt: yuv420p ТБ: 1/90000 сар: 65536/65536 sws_param: флаги = 2 07-30 14: 31: 58,882 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - [buffersink @ 0xb5cce0d0] нет непрозрачной поле не предусмотрено 07-30 14:31 : 58,891
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - [MPEG @ 0xb5c3df00] VBV размер буфера не установлен, муксинга может неудачу 07-30 14: 31: 58,892
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - Выходной # 0, MPEG, чтобы '/storage/emulated/0/DCIM/Camera/output.mp4': 07-30 14: 31: 58,894
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - Метаданные : 07-30 14: 31: 58,895
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - major_brand: MP42 07-30 14: 31: 58,896
3096-3182/douglasanunciacao.androidffm pegjavateste Е/TESTE FFMPEG: shellOut - minor_version: 0 07-30 14: 31: 58.896
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - compatible_brands: isommp42 07-30 14: 31: 58,897
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - CREATION_TIME: 2015-07-30 17:23:34 07-30 14: 31: 58,898 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кодер: Lavf54.6.100 07-30 14: 31: 58,898 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - поток # 0: 0 (рус): Видео: mpeg1video, yuv420p, 1920x1080 [SAR, 65536 : 65536 ДАР 16: 9], д = 2-31, 200 кб/с, 90k TBN, 23.98 TBC 07-30 14: 31: 58,899
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - Метаданные: 07-30 14: 31: 58,899
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - вращение: 270 07-30 14: 31: 58.900
3096-3182/douglasanunciacao.androidffmpegjavateste E/Teste FFMPEG: shellOut - CREATION_TIME: 2015-07-30 17:23:34 07-30 14: 31: 58,901 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - handler_name: VideoHandle 07-30 14:31: 58.906 3096-3182/douglasanunciacao.androidff mpegjavateste E/TESTE FFMPEG: shellOut - Stream # 0: 1 (eng): Аудио: mp2, 48000 Гц, stereo, s16, 128 kb/s 07-30 14: 31: 58.906
3096-3182/douglasanunciacao. androidffmpegjavateste Е/TESTE FFMPEG: shellOut - Метаданные: 07-30 14: 31: 58,906
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - CREATION_TIME: 2015-07-30 17:23:34 07- 30 14: 31: 58,906 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - handler_name: SoundHandle 07-30 14: 31: 58,906 3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - поток картирование: 07-30 14: 31: 58.906
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - поток # 0: 0 -> # 0: 0 (H264 -> mpeg1video) 07-30 14: 31: 58,906 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - Stream # 0: 1 -> # 0: 1 (aac -> mp2) 07-30 14: 31: 58.906 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - Press [q] для остановки, [?] для справки 07-30 14: 31: 59.824 3096-3182/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - frame = 4 fps = 0.0 q = 2.0 size = 0kB time = 00: 00: 00,08 bitrate = 0,0kbits/s 07-30 14: 32: 02.029
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кадр = 8 кадров в секунду = 2,7 кв = 10.5 размер = 4kB время = 00: 00: 00,25 битрейт = 130.9kbits/с 07-30 14: 32: 02,536
3096-3182/douglasanunciacao .androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кадр = 13 кадров в секунду = 3,7 кв = 25,2 размер = 696kB время = 00: 00: 00,45 битрейт = 12427.3kbits/с 07-30 14: 32: 03,045
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кадр = 18 кадров в секунду = 4,4 кв = 31,0 размер = 750KB время = 00: 00: 00,66 битрейт = 9206.8kbits/с 07-30 14: 32: 03,582
3096-3182 /douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: shellOut - frame = 23 fps = 5 0,0 кв = 31,0 размер = 786kB время = 00: 00: 00,87 битрейт = 7351.4kbits/с 07-30 14: 32: 04,140
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - рамка = 28 кадров в секунду = 5,5 кв = 31,0 размер = 862kB время = 00: 00: 01.08 битрейт = 6511.8kbits/с 07-30 14: 32: 05,239
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кадр = 30 кадров в секунду = 4,8 ц = 31,0 размер = 876kB время = 00: 00: 01.16 битрейт = 6144.9kbits/с 07-30 14: 32: 05,746
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - рамка = 35 fps = 5.2 q = 31.0 size = 910kB time = 00: 00: 01.37 bitrate = 5416.2kbits/s 07- 30 14: 32: 06,317
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кадр = 41 кадров в секунду = 5,6 ц = 31,0 размер = 972kB время = 00: 00: 01,62 битрейт = 4895.2kbits/с 07 -30 14: 32: 06,832
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - кадр = 45 кадров в секунду = 5,7 ц = 31,0 Lsize = 1022kB время = 00: 00: 01,83 битрейт = 4562.1kbits/с 07-30 14: 32: 06,832
3096-3182/douglasanunciacao.androidffmpegjavateste Е/TESTE FFMPEG: shellOut - видео: 984kB аудио: 30kb глобальные заголовки: 0kb муксинга накладные 0,756932% 07-30 14: 32: 06,858 3096- 3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: proccess полный - 0 07-30 14: 32: 06,858
3096-3096/douglasanunciacao.androidffmpegjavateste E/TESTE FFMPEG: terminou о FFmpeg ---> выход видео файл существует
Кто-нибудь знает, как решите эту проблему? Заранее спасибо.