Команда FFMPEG для создания видео из изображения (JPEG) + аудио (.mp3) и обмена видео в WhatsApp

Я пытаюсь создать видеофайл .mp4 из аудио .mp3 и изображения .jpeg.

Я могу создать видео и воспроизвести его в видеоплеерах на устройствах Android.

Но после создания файла, когда я пытался поделиться этим видео в WhatsApp, в это время появляется сообщение "Формат файла не поддерживается".

Я использую ниже команду FFMPEG:

"-loop 1 -r 1 -i " + imageFilePath + " -i " + audioFilePath + " -c:v libx264 -crf 27 -tune stillimage -c:a copy -pix_fmt yuv420p -preset ultrafast -shortest " + pathOutputVideo(sectionName);

А для обмена видео я использую код, указанный ниже:

  MediaScannerConnection.scanFile(ShareQuestionAudioActivity.this, new String[]{FfmpegController.pathOutputVideo(qModel.getSectionName().toUpperCase().replaceAll(" ", "_"))},
                null, new MediaScannerConnection.OnScanCompletedListener() {
                    public void onScanCompleted(String path, Uri uri) {
                        Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
                        shareIntent.setType("video/*");
                        shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(FfmpegController.pathOutputVideo(qModel.getSectionName().toUpperCase().replaceAll(" ", "_"))));
                        startActivity(Intent.createChooser(shareIntent, "Share Question"));
                    }
                });

Я нашел здесь, что мне нужно использовать H.264 + ААС. Но я по-прежнему не могу поделиться видео с поддерживаемым форматом файла.


person Neel Mevada    schedule 22.11.2018    source источник
comment
что вы использовали для преобразования изображений в видео?   -  person Android User    schedule 22.11.2018
comment
Я использую FFMPEG только для объединения изображения и аудио для получения выходного видео [.mp4]. @AndroidUser   -  person Neel Mevada    schedule 22.11.2018
comment
@NeelMevada, можете ли вы поделиться созданным вами файлом mp4?   -  person Dimitri Podborski    schedule 23.11.2018
comment
@NeelMevada еще один вопрос, почему вы не установили shareIntent.setType(video/mp4); для файла mp4?   -  person Dimitri Podborski    schedule 23.11.2018
comment
это также возможный дубликат этого сообщения   -  person Dimitri Podborski    schedule 23.11.2018
comment
@incBrain Я пробовал с видео/mp4, но возникает та же проблема. ссылка ›› Этот пост связан с изображением, и я могу поделиться изображением в WhatsApp. У меня возникает проблема с отправкой только видео. Заранее спасибо за вашу помощь !   -  person Neel Mevada    schedule 23.11.2018
comment
@NeelMevada хорошо, если вы можете сделать это с изображением, используя аналогичный подход, это хорошо. Я могу попытаться глубже изучить созданный вами файл mp4, может быть, я смогу что-то понять. Одна вещь, которую я вижу из ваших опций ffmpeg, это -c:a copy, когда вы используете .mp3. это не создаст звук AAC. Попробуйте удалить -c:a copy (ffmpeg должен делать aac по умолчанию, если не указать аудиокодек aac в настройках)   -  person Dimitri Podborski    schedule 23.11.2018
comment
@incBrain Спасибо за вашу поддержку. Это было решено с использованием аудиокодека AAC в этой команде. теперь я использую -c:a aac, и он работает хорошо.   -  person Neel Mevada    schedule 03.12.2018


Ответы (1)


Как уже обсуждалось в комментариях, проблема возникает из-за того, что звук не должен быть закодирован с использованием кодека AAC, поскольку -c:a copy использовался в mp3 аудиофайлах.

Решение этой проблемы состоит в том, чтобы указать ffmpeg перекодировать аудиопоток в AAC, используя -c:a aac. Другие примеры кодирования AAC также можно найти здесь.

person Dimitri Podborski    schedule 03.12.2018