Использование ffmpeg для показа волны пи c аудиофайла - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь получить волны аудиофайла в виде изображения. Я хотел бы использовать FFmpeg, но, к сожалению, я нашел очень мало кода в этом отношении, и документальный фильм имеет только один пример. Я использую это в первый раз. Поэтому я попробовал этот kotlin код, используя showwavespi c:

val audioFile = File(pathAudioFile)
val wavePic = File(context.filesDir.absolutePath + "/waveform.png")
val cmd = "-y -i ${audioFile.path} showwavespic=s=640x120 ${wavePic.path}"

    try {
        when(FFmpeg.execute(cmd)){
            Config.RETURN_CODE_SUCCESS -> {
                frameLayout.findViewById<ImageView>(R.id.waveView).setImageURI(Uri.fromFile(wavePic)) 
            }

            else -> {
            }
        }

С этой командой вызывается get-блок get, поэтому он кажется неправильным. Это пример из документального фильма

ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png

Мне не нужны доступные параметры (пока), так в чем моя вина? Я также не уверен, нужен ли мне путь или сам файл, поэтому я попробовал это:

val cmd = "-i $audioFile waveform.png"

Но это тоже не работает. Может кто-нибудь помочь мне с моими первыми шагами, используя FFmpeg?

1 Ответ

0 голосов
/ 04 апреля 2020

Работает с использованием -i ${audioFile.path} -filter_complex "showwavespic=s=640x120" -frames:v 1 ${wavePic.path}

...