Я хочу прикрепить Pre-Rolls к видео, снятым на устройствах Android - PullRequest
0 голосов
/ 15 мая 2018

Я использую mp4parser, и видео должно быть одинакового типа.Я думал об использовании медиа-кодека Android для декодирования и кодирования видео предварительного просмотра, чтобы соответствовать одному и тому же выводу кодирования камер (спереди и сзади), какие-либо предложения о том, как это можно сделать (как получить конкретные параметры кодирования устройства)?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если вы хотите магии, попробуйте эту библиотеку.

https://github.com/INDExOS/media-for-mobile/

Посмотрите на класс MediaComposer.

Вот также фрагмент кода о том, как это делается.

org.m4m.MediaComposer mediaComposer = new org.m4m.MediaComposer(factory, progressListener);

mediaComposer.addSourceFile(mediaUri1);
int orientation = mediaFileInfo.getRotation();

mediaComposer.setTargetFile(dstMediaPath, orientation);

// set video encoder
VideoFormatAndroid videoFormat = new VideoFormatAndroid(videoMimeType, width, height);
videoFormat.setVideoBitRateInKBytes(videoBitRateInKBytes);
videoFormat.setVideoFrameRate(videoFrameRate);
videoFormat.setVideoIFrameInterval(videoIFrameInterval);
mediaComposer.setTargetVideoFormat(videoFormat);

// set audio encoder
AudioFormatAndroid aFormat = new AudioFormatAndroid(audioMimeType, audioFormat.getAudioSampleRateInHz(), audioFormat.getAudioChannelCount());
aFormat.setAudioBitrateInBytes(audioBitRate);
aFormat.setAudioProfile(MediaCodecInfo.CodecProfileLevel.AACObjectLC);
mediaComposer.setTargetAudioFormat(aFormat);

mediaComposer.setTargetFile(dstMediaPath, orientation);
mediaComposer.start();
0 голосов
/ 24 мая 2018

Если вы хотите узнать, какую кодировку использует ваша камера Android, попробуйте использовать это: https://developer.android.com/reference/android/media/CamcorderProfile

Этого должно быть достаточно, чтобы ответить на ваши вопросы для определения кодировки видео, включая: формат вывода файла, формат видеокодека, битрейт видео в битах в секунду, частоту кадров видео в кадрах в секунду, ширину и высоту видеокадра, аудиокодек формат, скорость звука в битах в секунду, частота дискретизации звука Количество аудиоканалов для записи.

Вытащил также много вышеприведенной информации отсюда: https://developer.android.com/guide/topics/media/camera#capture-video

Что касается транскодирования видео, которые уже находятся в списке пользователей, я нашел этот полезный транскодер, написанный на чистом Java с использованием Android MediaCodec API, и его можно найти здесь: https://github.com/ypresto/android-transcoder

Кроме того, как указано ниже в rupps, вы можете использовать ffmeg, который работает бесчисленное количество раз на Android. Тем не менее, причина, по которой я сначала связываю другой транскодер, заключается в том, что, как утверждает автор, «FFmpeg - самое известное решение для транскодирования. Но использование двоичного кода FFmpeg на Android может вызвать проблемы с GPL и / или патентами. Также использование нативного кода для Android разработка может быть проблематичной из-за кросс-компиляции, совместимости архитектуры, времени сборки и размера двоичного файла. " Так что используйте тот, который, по вашему мнению, вам больше подходит. Вот ссылка для ffmeg для Android: https://github.com/WritingMinds/ffmpeg-android

Если вы не хотите использовать транскодер, созданный кем-то другим, я рекомендую сделать ваш собственный транскодер с использованием MediaCodec API, который можно найти здесь: https://developer.android.com/reference/android/media/MediaCodec

...