7

У меня есть много файлов MP3 на моем веб-сайте, и я решил загрузить их на Youtube, но, к сожалению для меня, Youtube не позволяет мне это делать. Требуется только видео формат.

Как я могу преобразовать эти MP3-файлы в видео и добавить один и тот же набор изображений (одно или несколько изображений) в полученный формат видео.

Мне нужно сделать это оптом, а не индивидуально, у меня есть сотни файлов MP3.

Это может быть приложение на базе Windows или Linux.

3 ответа3

8

Там какая - то информация об использовании FFmpeg для кодирования аудио с неподвижным изображением на YouTube, здесь, и некоторые советы для делать массовые преобразования в Windows, здесь.

Что касается кодирования, я считаю, что это работает:

ffmpeg -loop 1 -r 1 -i pic.jpg -i audio.mp3 -c:a copy -shortest output.avi

2

Некоторые решения для Ubuntu и других систем Linux можно найти по адресу http://ubuntuforums.org/showthread.php?t=1686664. Большинство из них представляют собой команды оболочки или какой-либо другой язык быстрого написания сценариев, который можно зациклить для всех файлов MP3 и выводить видеофайлы. Затем вы можете просто поставить видеофайлы в очередь для загрузки на YouTube. Среди решений, перечисленных на странице:

  1. FFmpeg, затем загрузите файлы на YouTube
    ffmpeg -loop 1 -i picture.jpg -i music.mp3 -shortest -acodec copy video.mp4 соответствующую петлю для всех mp3-файлов, а затем загрузить все полученные видеофайлы.

  2. Python, конвертировать в mp4, а затем загружать файлы на YouTube

    #! /usr/bin/env python

    import sys, os

    inputOne = sys.argv[1] inputTwo = sys.argv[2]

    for i in sys.argv[1:]: if '.mp3' in i: output = i.replace('mp3','mp4')

    cmd = 'ffmpeg -loop_input -i "'+inputOne+'" -i "'+inputTwo+'" -shortest -acodec copy "'+output+'"'

    os.system(cmd)

Он также использует ffmpeg и принимает музыку и изображение в качестве аргументов.

2

Вы также можете рассмотреть простой bash oneliner вместо сценария python -

for i in *.mp3; do ffmpeg -v quiet -i "picture.jpg" -i "$i" -shortest -acodec copy "`sed 's/mp3/mp4/g'<<<$i`"; done

Это преобразует все mp3 файлы в вашем текущем каталоге в mp4 видео с picture.jpg.

Для конвертации flac в mp3 это будет

for i in *.flac; do ffmpeg -v quiet -i "$i" -ab 320k -ac 2 -ar 48000 "`sed 's/flac/mp3/g'<<<$i`"; done

Обратите внимание на «-v quiet», который закрывает громкий рот ffmpeg, а также двойные кавычки вокруг $ i и sed - это гарантирует, что оно не потерпит неудачу с именами файлов, содержащими пробелы.

Совет: преобразование в видео занимает довольно много времени (по крайней мере, для меня). Попробуйте использовать -threads 4 (или любое другое значение, конечно. Это не имеет никакого смысла на одноядерных процессорах)

Редактировать: я узнал, что "-loop 1" (предложенный другими) создает цикл (как удивительно!) который на самом деле бесконечен. На моем gentoo это означает, что он съест все ваши вкусные кусочки. Без "-loop 1" он работает просто отлично, поэтому я предлагаю вам пойти на это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .