IllegalStateException при сжатии видео в "dequeueOutputBuffer()"

Я также проверил несколько или более похожих вопросов, но ни у одного из них не было удовлетворительного ответа.

Мое требование заключается в сжатии видео в ок. 1-2 минуты Ограничение размера видео в моем приложении составляет 500 МБ, а продолжительность - 4 минуты.

Команды, которые я пробовал -

-i /storage/sdcard0/Videos/Lat_test.mp4 -r 20 -vcodec mpeg4 -представить сверхбыстрый -c: копия -tune fastdecode -strict -2 -b: v 150k /storage/sdcard0/Videos/output.mp4

-y -i /storage/sdcard0/Videos/test3.mp4 -crf 24 -vcodec mpeg4 -preset ultrafast -c: копия -me_method ноль -настройка быстрого кода -tune zerolatency -strict -2 -b:v 1000k -pix_fmt yuv420p / хранение / sdcard0 / Видео / output.mp4

и еще несколько упомянутых здесь

1) https://github.com/Tourenathan-G5organisation/SiliCompressor (тот, который использует MediaCodec вместо FFMPEG).

2) https://github.com/lalongooo/VideoCompressor

При попытке с Samsung Galaxy Grand GT-i9082, версия 5.0.1 (укорененный), это не удалось с ошибкой ниже -

> java.lang.IllegalStateException
> at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
> at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:1033)
> at com.iceteck.silicompressorr.videocompression.MediaController.convertVideo(MediaController.java:491)
> at com.iceteck.silicompressorr.SiliCompressor.compressVideo(SiliCompressor.java:300)
> at com.iceteck.silicompressor.SelectPictureActivity$VideoCompressAsyncTask.doInBackground(SelectPictureActivity.java:379)
> at com.iceteck.silicompressor.SelectPictureActivity$VideoCompressAsyncTask.doInBackground(SelectPictureActivity.java:358)
> at android.os.AsyncTask$2.call(AsyncTask.java:288)
> at java.util.concurrent.FutureTask.run(FutureTask.java:237)
> at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
> at java.lang.Thread.run(Thread.java:818)

Пожалуйста, предложите, как решить эту проблему.

Или же please suggest any other better video compressing approach / sample / reference, если возможно

Я пробовал различные образцы сжатия видео с использованием FFMPEG, а также MediaCodec, но ни один из них не работает хорошо. Некоторые очень, очень медленные. и отдых терпит неудачу в нескольких устройствах.

0 ответов

Другие вопросы по тегам