Преобразование 6 аудиоканалов в 2 в ffmpeg - PullRequest
4 голосов
/ 25 января 2011

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

К сожалению, когда пользователь загружает файлы .mkv из 6 аудиоканалов (объемное звучание 5.1), ffmpeg выдает следующую ошибку:

Resampling with input channels greater than 2 unsupported.

Я использую последнюю версию ffmpeg. Выполнение -ac 6 вместо обычного - ac 2 продолжается с кодированием, но оно просто создает файл большего размера с бесполезными данными, а также создает еще один шаг в уже длинном сценарии обработки файлов, и я бы предпочел не изменять преобразование команда.

Что я могу сделать, чтобы -ac 2 действительно работал?

Ответы [ 4 ]

1 голос
/ 25 января 2011

Это известная ошибка / ограничение текущего ffmpeg.

По своему опыту я пришел к выводу, что это невозможно сделать только с помощью ffmpeg.

Вы должны перекодировать аудио / видео отдельно.

1) извлечь файл .wav из исходного фильма.
2) ресэмплировать в 2-канальное стерео с помощью инструмента редактирования аудио, такого как Audacity .
3) кодировать аудиопоток
3) перекодировать видеопоток
4) мультиплексирование аудио / видео в целевой формат

0 голосов
/ 12 июня 2013

У меня возникла та же проблема, когда я установил ffmpeg из RPM, но затем я взял последнюю версию с здесь , и она работала как шарм!

Одно замечание: некоторые флаги были изменены, например, -sameq должен быть -qscale 0 при использовании новой версии, поэтому имейте в виду, что его необходимо тщательно протестировать перед использованием в производственных средах.

0 голосов
/ 12 июня 2012

Недавно был добавлен модуль "amerge".

0 голосов
/ 08 января 2012

У меня есть сценарий, который может быть улучшен. Сначала попробуйте конвертировать в mp3 с тегами, это работает, если у них максимум 2 канала. Если у них больше двух каналов, я использую ffmpeg, который конвертирует в стерео mp3

#!/bin/bash
FLAC="${1}"
MP3="${FLAC%.flac}.mp3"
[ -r "${FLAC}" ] || { echo can not read file \"${FLAC}\" >&1 ; exit 1 ; } ;
# Save meta information 
metaflac --export-tags-to=- "${FLAC}" | sed 's/=\(.*\)/="\1"/' >tmp.tmp
cat tmp.tmp
. ./tmp.tmp
rm tmp.tmp

# try to save meta info and convert to mp3 format
flac -dcs "${FLAC}" | lame -b 192 -h --tt "${Title}" \
    --tn "${Tracknumber}" \
    --tg "${Genre}"       \
    --ty "${Date}"        \
    --ta "${Artist}"      \
    --tl "${Album}"       \
    --add-id3v2           \
    - "${MP3}"
# if fail do not use saved meta info
if [ $? -eq 1 ]; then
    ffmpeg -i "${FLAC}" -vcodec copy -acodec libmp3lame -ab 192k -ar 48000 -async 48000 -ac 2 "${MP3}"
fi
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...