воскресенье, 13 августа 2017 г.
19 команд ffmpeg для любых нужд
От переводчика:
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его manобъёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.
ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.
Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg
(примечание переводчика: мне больше нравится такой формат:
здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
Эта команда создаст файлы image1.jpg, image2.jpg и т.д., поддерживаются так же форматы PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.
Пояснения:
Пояснения:
Пояснения:
или
Пояснения:
Формат NTSC:
Формат PAL:
Формат NTSC:
Формат PAL:
Примечание переводчика:
Предлагаю в комментариях привести и другие полезные команды ffmpeg, их ведь гораздо больше, чем 19. ;)
Многие знают, что ffmpeg — это сила, но не все знают, какая именно. Он многогранен и безграничен, а его manобъёмен и местами малопонятен, лишь немногие постигли дао профессиональной работы с ним. И тем не менее, этот инструмент может быть полезен почти всем, кто хоть иногда работает с видео и звуком, даже на бытовом уровне. О некоторых полезных консольных командах ffmpeg и пойдёт речь в статье. В некоторых местах я взял на себя смелость вставить ссылки на поясняющие статьи.
ffmpeg — это кроссплатформенная open-source библиотека для обработки видео- и аудиофайлов. Я собрал 19 полезных и удивительных команд, покрывающих почти все нужды: конвертация видео, извлечение звуковой дорожки, конвертирование для iPod или PSP, и многое другое.
1. Получение информации о видеофайле
ffmpeg -i video.avi
2. Превратить набор картинок в видео
ffmpeg -f image2 -i image%d.jpg video.mpg
Эта команда преобразует все картинки из текущей директории (названные image1.jpg, image2.jpg и т.д.) в видеофайл video.mpg
(примечание переводчика: мне больше нравится такой формат:
ffmpeg -r 12 -y -i "image_%010d.png" output.mpg
здесь задаётся frame rate (12) для видео, формат «image_%010d.png» означает, что картинки будут искаться в виде image_0000000001.png, image_0000000002.png и тд, то есть, в формате printf)
3. Порезать видео на картинки
ffmpeg -i video.mpg image%d.jpg
Эта команда создаст файлы image1.jpg, image2.jpg и т.д., поддерживаются так же форматы PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.
4. Конвертировать видео в формат iPod/iPhone
ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4
Пояснения:
- Источник: source_video.avi
- Аудио кодек: aac
- Битрейт аудио: 128kb/s
- Видео кодек: mpeg4
- Битрейт видео: 1200kb/s
- Размер видео: 320 на 180 пикселей
- Полученное видео: final_video.mp4
5. Конвертировать видео в формат PSP
ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4
Пояснения:
- Источник: source_video.avi
- Аудио кодек: aac
- Битрейт аудио: 32kb/s
- Видео кодек: xvid
- Битрейт видео: 1200kb/s
- Размер видео: 320 на 180 пикселей
- Полученное видео: final_video.mp4
6. Извлечь звуковую дорожку из видео и сохранить в mp3
ffmpeg -i source_video.avi -vn -ar 44100 -ac 2 -ab 192K -f mp3 sound.mp3
Пояснения:
- Источник: source_video.avi
- Битрейт аудио: 192kb/s
- Выходной формат: mp3
- Полученный аудиофайл: sound.mp3
7. Конвертировать wav в mp3
ffmpeg -i son_origine.wav -vn -ar 44100 -ac 2 -ab 192 -f mp3 son_final.mp3
8. Конвертировать .avi в .mpg
ffmpeg -i video_origine.avi video_finale.mpg
9. Конвертировать .mpg в .avi
ffmpeg -i video_origine.mpg video_finale.avi
10. Конвертировать .avi в .gif (без сжатия)
ffmpeg -i video_origine.avi gif_anime.gif
11. Добавить звук к видео
ffmpeg -i son.wav -i video_origine.avi video_finale.mpg
12. Конвертировать .avi в .flv
ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv
13. Конвертировать .avi в .dv
ffmpeg -i video_origine.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 video_finale.dv
или
ffmpeg -i video_origine.avi -target pal-dv video_finale.dv
14. Конвертировать .avi в mpeg для DVD-плееров
ffmpeg -i source_video.avi -target pal-dvd -ps 2000000000 -aspect 16:9 finale_video.mpeg
Пояснения:
- Выходной формат: pal-dvd
- Максимальный размер для выходного файла: 2000000000 (2 Gb)
- Широкоэкранный формат: 16:9
15. Сжать .avi в DivX
ffmpeg -i video_origine.avi -s 320x240 -vcodec msmpeg4v2 video_finale.avi
16. Сжать OGG Theora в mpeg DVD
ffmpeg -i film_sortie_cinelerra.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 film_termin.mpg
17. Сжать .avi в SVCD mpeg2
Формат NTSC:
ffmpeg -i video_origine.avi -target ntsc-svcd video_finale.mpg
Формат PAL:
ffmpeg -i video_origine.avi -target pal-svcd video_finale.mpg
18. Сжать .avi в VCD mpeg2
Формат NTSC:
ffmpeg -i video_origine.avi -target ntsc-vcd video_finale.mpg
Формат PAL:
ffmpeg -i video_origine.avi -target pal-vcd video_finale.mpg
19. Многопроходное кодирование с помощью ffmpeg
ffmpeg -i fichierentree -pass 2 -passlogfile ffmpeg2pass fichiersortie-2
Примечание переводчика:
Предлагаю в комментариях привести и другие полезные команды ffmpeg, их ведь гораздо больше, чем 19. ;)
Вот вам захват видео с экрана:
ОтветитьУдалитьffmpeg -f x11grab -s cif -r 25 -i :0.0+10,20 /tmp/out.mpg
здесь -s cif — размер, 0.0 — экран, 10,20 — это смещение относительно верхнего левого угла экрана
Ватермарк:
ОтветитьУдалитьffmpeg -i in.mp4 -vfilters "movie=0:gif:logo.gif [logo]; [in][logo] overlay=10:mainH-overlayH-10:1 [out]" out.mp4
Предположим у нас есть mkv файл c видео дорожкой и DTS звуком 5.1:
ОтветитьУдалитьВ папкy с mkv копируем wavi.exe, создаем там же файл audio-from-mkv.avs и вписываем в него:
DirectShowSource("file.mkv", video=false)
multi_ch=ConvertAudioToFloat(last)
function stereo_ch(clip a) {
flr = GetChannel(a, 1, 2)
fcc = GetChannel(a, 3)
lfe = GetChannel(a, 4)
lfc = MixAudio(fcc, lfe, 0.2071, 0.2071)
mix = MergeChannels(lfc, lfc)
lrc = MixAudio(flr, mix, 0.2929, 1.0)
blr = GetChannel(a, 5, 6)
return MixAudio(lrc, blr, 1.0, 0.2929)
}
stereo_ch(multi_ch)
после этого говорим
wavi "audio-from-mkv.avs" - | "d:\path\ffmpeg.exe" -y -i "file.mkv" -i pipe:0 -map 0:0 -map 1:0 -acodec libvo_aacenc -ab 192000 -vcodec copy -f mp4 result.mp4
в результате в файл result.mp4 запишется первый трек из файла file.mkv (первым треком должно идти видео) и стерео звук сконвертированный из исходного 5.1 и закодированный в mp4 с битрейтом 192к
Выдираем звук из видео в формате MP4 и сжимаем его в MP3:
ОтветитьУдалить$ cat mp4tomp3.sh
#!/bin/sh
for file in "$@" ; do
name=`echo "$file" | sed -e "s/.mp4$//g"`
ffmpeg -i "$file" -ac 2 -f wav - | lame --preset standard - "$name.mp3"
done
Cкрипту года полтора; надо было быстро вынуть звук из видеозаписи мероприятия, сделанной на портативную видеокамеру, раздать его в виде файликов через болванки CD или флешки, в формате, который все могут прослушать, и вот: этот алгоритм спас.
Add sound tracks to a video file with FFmpeg
ОтветитьУдалитьDecember 2, 2012
Short tutorial how to extract & merge audio tracks from/to video files with FFmpeg.
Extracting audio track(s) from video file
Say, we have a video file and we need to extract specific audio track from it. First, let's see which audio tracks we have in this file. Run the following command:
ffmpeg -i
Look at the output and find strings starting with "Stream #":
Stream #0:0: Video: mpeg4 (Advanced Simple Profile) (XVID / 0x44495658), yuv420p, 720x304 [SAR 1:1 DAR 45:19], 23.98 tbr, 23.98 tbn, 23.98 tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), s16, 448 kb/s
Let's extract audio track (stream 0:1):
ffmpeg -i -map 0:1 -vn -acodec copy output.ac3
Adding multiple audio tracks to existing video file
Say, we have existing video file with single audio track, and we want to merge two more audio tracks to this video file.
Here is final command:
ffmpeg -i -i -i -map 0:0 -map 0:1 -map 1:0 -map 2:0 -c:v copy -c:a copy
Let's see what's happening here.
first we pass 3 source files, each with -i
then comes 4 -map parameters. Each consecutive map parameter adds another stream to output file. After -map we specify from where to take the stream. First number means number of input file (which we specified earlier with -i), and second number means number of stream inside this input file. So, here we tell exactly the following (remember files and streams are indexed from zero):
map 0:0: copy stream 0 from first file (this is video stream) to stream 0 of output file
map 0:1: copy stream 1 from first file (this is audio stream) to stream 1 of output file
map 1:0: copy stream 0 from second file to stream 2 of output file
map 2:0: copy stream 0 from third file to stream 3 of output file
c:v copy means "Copy all video streams without re-encoding"
c:a copy means "Copy all audio streams without re-encoding"
That's it!
Поскольку я много лет занимался звуком: сведением, написанием фонограмм и записью (хотя судьба распорядилась так, что этим больше не занимаюсь), поделюсь опытом. Не брезговал и изготовлением рекламных роликов, посему с записью голоса дело приходилось иметь не раз.
ОтветитьУдалить1. Микрофон. Микрофон можно использовать самый простой: от звуковой карты a la Sound Blaster, если переделать его питание. В нём применён достаточно неплохой капсуль, но его нужно запитать более высоким напряжением. Инфу об этом можно найти в сети. Если намерения более серьёзные, можно купить б/у студийный микрофон начального уровня Shure SM57. Хоть его можно и найти б/у за $50, это не означает, что он — барахло. Через такой в своё время писался вокалист Aerosmith. Просто каждому вокалисту своё микрофон.
2. Процесс записи. Исходный материал должен быть максимально чистым. Звук кулера — враг номер один записи на микрофон. Чтобы от него избавиться, проще всего использовать для записи ноутбук. :) Чтобы избавиться от эха, прежде всего можно повесить тряпку сзади себя, т.к. микрофон воспринимает больше всего звук с той же стороны где сидит говорящий. Второй очень популярный домашний вариант — забраться в платяной шкаф, а текст заранее закачать на смартфон и читать с него. В шкафу нет эха и звук получается очень качественный. Заодно и от шума кулера избавитесь. По поводу очистки шума: если уж он у вас записался, постарайтесь найти плагин Steinberg Denoiser. Он очень старинный, но умеет убирать фоновый шум без искажения звукового материала.
3. Обработка звука. Прочитав статью, увидел, что вы упустили один из базовых моментов звукорежиссуры: обработку компрессором. Компрессор — это приблуда №1, которая выравнивает уровень громкости звуковой дорожки. В Sound Forge есть встроенные компрессоры. Как им работать, тоже почитайте в сети, статей великое множество. Но для начала выберите пресет Speech и начните понижать движок threshold. Вы услышите, что громкость начнёт падать, но при этом звук станет более чётким, агрессивным и начнёт звучать намного профессиональнее. Ещё для удаления излишне шипящих и сипящих звуков используется плагин DeEsser. После этих двух плагинов на голос можно наложить очень небольшой ревер (Reverb), но это уже по вкусу.
4. Микширование. Эффекта приглушения основной фонограммы можно было добиться используя sidechain. Это фишка, которая позволяет громкости одного трека управлять любым параметром любого плагина другого трека, она есть во многих звуковых редакторах (не знаю есть ли в Vegas). Или второй вариант: поставить компрессор на всю фонограмму. Получилось бы, что когда вашего голоса нет, основная фанера громче, а как ваш голос появляется (т.к. общая громкость становится больше!) компрессор приглушает всю фанеру и на фоне этого основная фанера станет тише. Только в параметрах этого компрессора надо поставить большое время атаки и затухания чтобы это происходило плавно. На выходе всей фонограммы обычно ещё применяют и Limiter: он позволяет максимизировать громкость не внося искажений.
Ну и ещё совет. :) Если вдруг захотите заняться профессиональной озвучкой, в качестве голосовых моделей лучше использовать актёров театров. У них как правило поставленные голоса, они умеют правильно произносить слова и могут сыграть любую нужную вам интонацию. Времени у них свободного много, а платить им можно (в силу невысокой оплаты их труда) не много, особенно молодым. На работу они будут соглашаться с радостью.
По софту. Есть очень старая программа CoolEdit, которую потом купил Adobe и выпустил её под названием Adobe Audition. При том, что ей уже много лет, её любят многие звукорежиссёры в силу удобства использования и очень неплохих плагинов. И шумоподавитель там тоже очень зачётный. При этом она вам заменит и Sound Forge и Vegas вместе взятые, т.к. тоже имеет мультитрек.
Скринкаст:
ОтветитьУдалитьalias recdesktop='ffmpeg -f x11grab -s 1920x1080 -r 8 -i :0.0 -sameq -f alsa -i hw:1,0 '
Правильное превращение набора картинок в видео c аудио.
ОтветитьУдалитьffmpeg -r a -i "image_%%03d.jpg" -t b -i "audio.mp3" -y -r c "output.mp4"
a — frame rate, количество изображений в секунду. Если это значение < 1, то нужно обязательно указывать -r c, чтобы выходное видео получилось корректным и воспринималось всеми стандартными плеерами.
b — продолжительность звучания аудио. В моем случае указывается продолжительность видео, чтобы аудио не вылезло за границы. Узнать продолжительность можно с помощью ffprobe, а в данном случае она равна n / a, где n — количество входных изображений.
c — frame rate результирующего видео.
Обратите внимание, что в Win системах во всяком случае, входные изображения нужно указывать с двойным процентом. Если аудио не нужно, то соответственно уберите -t b -i «audio.mp3».
Извиняюсь, в теге source по ошибке применено форматирование текста.
ОтветитьУдалитьПравильная команда выглядит так:
ffmpeg -r a -i "image_%%03d.jpg" -t b -i "audio.mp3" -y -r c "output.mp
Также забыл добавить, что frame rate результирующего видео обычно равен 30.
ОтветитьУдалитьИ если нужно сгенерировать таким способом видео из 3 картинок например, то входных картинок должно быть на самом деле 4, где первая и вторая будут повторяться (не знаю почему так, но именно так работает правильно).
Кстати добавлю от себя особенность, с которой промучился несколько часов — последовательность файлов должна быть непрерывной, иначе ffmpeg прекращает их добавлять. И еще пару ключиков, которые очень полезные:
ОтветитьУдалить-start_number 3378 -i IMG_%d.jpg
-start_number_range 9999 -i IMG_%d.jpg
После долгого копания нашелся способ передать ffmpeg набор файлов с разными именами и за компанию выяснилось что вот такая комбинация НЕ работает — ffmpeg хавает файлы, но на выходе получается только один фрейм с первым, не знаю почему:
ОтветитьУдалитьffmpeg -r 1 -i IMG_3378.jpg -i IMG_3380.jpg -i IMG_3382.jpg -c:v mpeg4 -vtag xvid -f avi -y out.avi
а вот такая (конвеер) работает:
type IMG_3378.jpg IMG_3380.jpg IMG_3382.jpg | ffmpeg -r 3 -f image2pipe -r 1 -y -vcodec mjpeg -i — out.avi
и да, файлы должны быть кажется одинаковые по ширине и высоте, т.е. вертикальные и горизонтальные картинки нужно сделать одного размера (напр. 800х800). Я использовал irfan batch converter -> canvas size для пакетной обработки файлов. Хотя, если обработки в bat файле не нужно, можно использовать например ImagesToVideo — обертка вокруг ffmpeg для создания слайдшоу.
f your video does not show the frames correctly If you encounter problems, such as the first image is skipped or only shows for one frame, then use the fps video filter instead of -r for the output framerate
ОтветитьУдалитьffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf fps=25 -pix_fmt yuv420p out.mp4
Alternatively the format video filter can be added to the filterchain to replace -pix_fmt yuv420p like "fps=25,format=yuv420p". The advantage to this method is that you can control which filter goes first
ffmpeg -r 1/5 -i img%03d.png -c:v libx264 -vf "fps=25,format=yuv420p" out.mp4
I tested below parameters, it worked for me
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -vf "fps=25,format=yuv420p" e:\out.mp4
below parameters also worked but it always skips the first image
"e:\ffmpeg\ffmpeg.exe" -r 1/5 -start_number 0 -i "E:\images\01\padlock%3d.png" -c:v libx264 -r 30 -pix_fmt yuv420p e:\out.mp4
making video from images placed in different folders
First add image paths to imagepaths.txt like below.
# this is a comment details https://trac.ffmpeg.org/wiki/Concatenate
file 'E:\images\png\images__%3d.jpg'
file 'E:\images\jpg\images__%3d.jpg'
Sample usage as follow;
"h:\ffmpeg\ffmpeg.exe" -y -r 1/5 -f concat -safe 0 -i "E:\images\imagepaths.txt" -c:v libx264 -vf "fps=25,format=yuv420p" "e:\out.mp4"
Using ffmpeg to convert a set of images into a video
ОтветитьУдалитьApr 5, 2016
Original 2012-11-16, Updated 2016-04-05: cleanup and information about overlaying images.
When using ffmpeg to compress a video, I recommend using the libx264 codec, from experience it has given me excellent quality for small video sizes. I have noticed that different versions of ffmpeg will produce different output file sizes, so your mileage may vary.
To take a list of images that are padded with zeros (pic0001.png, pic0002.png…. etc) use the following command:
ffmpeg -r 60 -f image2 -s 1920x1080 -i pic%04d.png -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4
where the %04d means that zeros will be padded until the length of the string is 4 i.e 0001…0020…0030…2000 and so on. If no padding is needed use something similar to pic%d.png or %d.png.
-r is the framerate (fps)
-crf is the quality, lower means better quality, 15-25 is usually good
-s is the resolution
-pix_fmt yuv420p specifies the pixel format, change this as needed
the file will be output (in this case) to: test.mp4
Specifying start and end frames
ffmpeg -r 60 -f image2 -s 1920x1080 -start_number 1 -i pic%04d.png -vframes 1000 -vcodec libx264 -crf 25 -pix_fmt yuv420p test.mp4
-start_number specifies what image to start at
-vframes 1000 specifies the number frames/images in the video
Overlaying image on video
Assuming that you have an overlay image that is the same size as the video, you can use the following command to add it during the ffmpeg compression process.
ffmpeg -r 60 -f image2 -s 1920x1080 -i pic%04d.png -i ~/path_to_overlay.png -filter_complex "[0:v][1:v] overlay=0:0" -vcodec libx264 -crf 25 -pix_fmt yuv420p test_overlay.mp4
~/path_to_overlay.png is the full/relative path to the overlay image
[0:v][1:v] joins the two video streams together, stream 1 is the set of images, stream 2 is the overlay file
overlay=0:0 specifies the position of the overlay, in this case the overlay image is assumed to be the same size as the video so no offset is needed. The offset is specified as overlay=x:y where x is the x offset in pixels and y is the y offset in pixels
You can use this technique to overlay multiple files on top of each other, or even have a dynamic overlay. -filter_complex is a really flexible command and can do much much more than is shown here. See the ffmpeg filters documentation for more information.
Adding a mp3 to a video
Adding sound to a video is straightforward
ffmpeg -r 60 -f image2 -s 1280x720 -i pic%05d.png -i MP3FILE.mp3 -vcodec libx264 -b 4M -vpre normal -acodec copy OUTPUT.mp4
-i MP3FILE.mp3 The audio filename
-acodec copy Copies the audio from the input stream to the output stream
Converting a video to mp4 from a different format
If the video has already been compressed the following can be used to change the codmpression to h264:
ffmpeg -i INPUT.avi -vcodec libx264 -crf 25 OUTPUT.mp4
Playback Issues for Quicktime/Other Codecs
Quicktime and some other codecs have trouble playing certain pixel formats such as 4:4:4 Planar and 4:2:2 Planar while 4:2:0 seems to work fine
Add the following flag to force the pixel format:
-pix_fmt yuv420p
Finer Bitrate control (to control size and quality)
-b 4M
you can use the -b flag to specify the target bitrate, in this case it is 4 megabits per second
Using -vpre with a setting file
-vpre normal
-vpre is the quality setting, better quality takes longer to encode, some alternatives are: default, normal, hq, max. Note that the -vpre command only works if the corresponding setting file is available.
Конвертирование видео с несколькими аудиодорожками:
ОтветитьУдалитьffmpeg -i input.avi -map 0:0 -map 0:1 -map 0:2 -vcodec h264 -b:v 800k -acodec:0 copy -acodec:1 copy output.avi
any2mp3.sh
ОтветитьУдалить#!/bin/bash
if [ "$#" -ne 6 ]; then
echo "Usage: any2mp3.sh [-i|--input] [INPUTPATH] [-e|--ext] [EXTENSION] [-o|--output] [OUTPUTPATH]"
exit -1
fi
while [[ $# > 1 ]]
do
key="$1"
case $key in
-i|--input)
INPUTPATH="$2"
shift # past argument
;;
-e|--ext)
EXTENSION="$2"
shift # past argument
;;
-o|--output)
OUTPUTPATH="$2"
shift # past argument
;;
*)
# unknown option
;;
esac
shift # past argument or value
done
echo -------------------------------------------------------
echo INPUTPATH = "${INPUTPATH}"
echo EXTENSION = "${EXTENSION}"
echo OUTPUTPATH = "${OUTPUTPATH}"
echo -------------------------------------------------------
echo "Number files in INPUTPATH with EXTENSION:" $(ls -1 "${INPUTPATH}"/*."${EXTENSION}" | wc -l)
echo "ffmpeg -i " *.${EXTENSION} "-ar 44100 -ac 2 -aq 0 -f mp3 *.mp3"
echo -------------------------------------------------------
for a in "${INPUTPATH}"/*."${EXTENSION}"; do
MP3INFULL="${a[@]/%${EXTENSION}/mp3}"
MP3NAME="$(basename "${MP3INFULL}")"
MP3OUTFULL="${OUTPUTPATH}"/"${MP3NAME}"
echo "${a}" "==>" "${MP3OUTFULL}"
done
echo -------------------------------------------------------
read -p "Press any key to continue. Ctrl-C to break... " -n1 -s
echo
for a in "${INPUTPATH}"/*."${EXTENSION}"; do
MP3INFULL="${a[@]/%${EXTENSION}/mp3}"
MP3NAME="$(basename "${MP3INFULL}")"
MP3OUTFULL="${OUTPUTPATH}"/"${MP3NAME}"
ffmpeg -i "${a}" -ar 44100 -ac 2 -aq 0 -f mp3 "${MP3OUTFULL}"
done