Похожие вопросы

Как отключить обнаружение аудиоразъемов в Windows 10 без использования Realtek HD Audio Manager?
Есть ли разница между динамиками компьютера и hi-fi?
Как сделать HDTV HDMI выход аудио на внешний динамик?
Подключение Bluetooth-гарнитуры убивает wifi интернет на ноутбуке ПК
Как я могу сделать AGC по умолчанию?
объединение файлов ogg vorbis без потерь
Звук идет только через сабвуфер
Отправка микрофонного входа через удаленный рабочий стол 7.0
VLC media player выбор аудио дорожки для конвертации
Нормализовать объем всего моего компьютерного оборудования и программного обеспечения?
Объединить два аудиоканала (стерео) в один (моно) на GSM6.10 использование FFMPEG
Ffmpeg конкатенация удаление части первого видео
Можно ли увеличить громкость звука выше 100% в Linux?
Driver WudfRd не удалось загрузить для устройства ROOTWPD000
Выравнивание Громкости-Почему Музыка В Winamp Теряет Громкость?

объединение файлов ogg vorbis без потерь

у меня есть несколько файлов ogg vorbis, закодированных с теми же свойствами, которые я хочу объединить в один файл.

Я знаю, что формат ogg vorbis поддерживает простое объединение нескольких файлов, таких как:

$ cat file1.ogg file2.ogg > output.ogg

но, к сожалению, не все игроки могут понять файлы, созданные таким образом, например, мой мобильный аудиоплеер, и я бы избежать, чтобы купить новый. Другие программы, которые этого не понимают-gstreamer. Этот метод также не работает, если входные файлы ogg имеют одинаковый идентификатор потока.

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

Я также хочу избежать объединения файлов в формат без потерь, такой как flac, поскольку это излишне увеличит размер файла. Если это было бы хорошо, то я мог бы сохранить оригинальные файлы ogg и использовать меньше пространство.

кажется, что ffmpeg иногда может сделать это с помощью concat demuxer:

$ cat inputs.txt
file 'in1.ogg'
file 'in2.ogg'
$ ffmpeg -f concat -i inputs.txt -c copy out.ogg

если я смотрю на сырые вывести из входных файлов, то я могу найти ворбис пакеты представлены в выходном файле. Так что, думаю, никакого перекодирования не происходит.

но это, кажется, не работает на всех входных файлах. Иногда (не уверен, что вызывает это), ffmpeg даст предупреждение:

Non-monotonous DTS in output stream 0:0; previous: 5011328, current: 5011200; changing to 5011329. This may result in incorrect timestamps in the output file.

и тогда я услышу очень слабый "зазор" между двумя файлами. Таким образом, это, безусловно, не является глобальным решением.

так как я не мог найти один я попытался написать свой собственный инструмент в этот stackoverflow вопрос.

есть ли способ объединить несколько файлов ogg vorbis, но без их перекодирования и только с одним потоком на выход? Какой инструмент способен выполнить эту работу?

5
задан Community
источник

2 ответов

ffmpeg -i "concat:ogg1.ogg|ogg2.ogg|ogg3.ogg" -c copy out.ogg создает объединенный ogg-файл в моей системе, только немного меньше, чем отдельные файлы вместе взятые (вероятно, из-за общих метаданных). Для меня это звучит одинаково, поэтому конкатенация должна быть без потерь. Однако, это не добавляет небольшой разрыв между файлами.

ffmpeg -f concat -safe 0 -i ogg1.ogg -i ogg2.ogg -c copy out.ogg должен работать, но он дает эту ошибку на моем Homebrew (macOS) ffmpeg с 3.3.2.

[concat @ 0x7f91e8800400] Line 1: unknown keyword 'OggS'
ogg1.ogg: Invalid data found when processing input

источник: https://trac.ffmpeg.org/wiki/Concatenate

1
отвечен 2017-07-06 12:54:32
источник

вы можете взглянуть на FFmpeg. Он имеет много инструментов, которые я не совсем понимаю, но я помню из документация что есть инструмент, чтобы сделать именно это. В противном случае, я думаю, что вы можете использовать VLC Media Players Командная Строка.

0
отвечен NatoBoram 2016-12-06 18:44:50
источник

Другие вопросы audio cat lossless ogg vorbis