Однако уже после этапа сегмента / транскодирования каждый сегмент имеет короткое молчание в начале своего аудиопотока, который затем слышен в каждой точке склейки в объединенном видео. Я попробовал несколько тестовых видео, и было только 1, где я не мог слышать это введенное молчание.
Теперь мне интересно, есть ли способ использовать решение обрезки / конкатов, описанное выше, но включить шаг «перекодировать каждый сегмент отдельно перед конкататированием». Может быть, это должно быть достигнуто в 3 командах, то есть обрезать по сегментам, перекодировать каждый сегмент, перекодировать сегменты Concat и не может быть сделано все в одной команде.
В подходе, который я попробовал, где я использовал поиск и перекодировку, возникли эти проблемы со звуком, и я подозреваю, что они появились во время перекодирования каждого сегмента. Не уверен, что это связано с тем подходом, который я пробовал, и его можно избежать, используя, например, фильтр Trim (или другой?) С последующим транскодом, но я не уверен относительно команды или последовательности команд, которые могли бы достичь этого.
Ваше требование немного сбивает с толку. Предлагаемое решение, на которое вы ссылаетесь **, ** транскодирует каждый сегмент. Тем не менее, это было предназначено для извлечения определенных разделов из видео, а не нарезать на кусочки. Для вашей цели вы можете просто сделать (например) три отдельных транскодов для трех отдельных начальных и конечных точек, а затем объединить. Кроме того, не должно быть никакого "молчания" в начале, если все идет правильно. И предоставьте консольный вывод этой команды.
Rajib 9 лет назад
0
Я просто вырезал фрагмент видео и использовал отдельную команду для его перекодирования. Я добавил сюда все примеры файлов, если вы хотите посмотреть, https://www.dropbox.com/sh/h09r1pm1f4mv5fh/AABJOg-zfXdJDNtwqiQjhHQEa?dl=0, включая 2 снимка экрана, которые показывают аудиопоток в Audacity чанка и кусок после транскодирования. Кажется, в начале транскодированного файла добавлена тишина, не уверенная, что я делаю неправильно. Исходное видео - mtb.mp4, чанк - chunk1.mp4, транскодированный чанк - transcoded1.mp4. Я также добавил .txt с командами и выводом на консоль.
Mugba 9 лет назад
0
Почему бы не попробовать `ffmpeg -i mtb.mp4 -ss 00 -t 5 -c: v libx264 -c: aac -strict -2 transcoded1.mp4` за один раз? (Вам не нужно время начала в этом случае). Также, пожалуйста, предоставьте консольный вывод здесь вместо dropbox.
Rajib 9 лет назад
0
спасибо, я попробовал вашу команду, используя собственный aac вместо libfdk_aac, см. вывод консоли выше. Увы, в начале каждого клипа, который я извлекаю и транскодирую таким образом, все еще присутствует очень короткое молчание, которое слышно, когда я соединяю сегменты вместе. Есть идеи, как это можно решить?
Mugba 9 лет назад
0
@Rajib, это здесь, похоже, описывает проблему, с которой я столкнулся, но не включает решение для нее, https://lists.ffmpeg.org/pipermail/ffmpeg-user/2013-De December/019067.html
Mugba 9 лет назад
0
Когда вы пробовали с цепочкой фильтров и `setpts` и` asetpts` также это дало такой же разрыв?
Rajib 9 лет назад
0
@Rajib, нет, я не думаю, что это так, но как я могу контролировать транскодирование каждого из сегментов в этой цепочке фильтров, чтобы они транскодировались отдельно и индивидуально перед тем, как их объединить в выходной файл? Я имею в виду, что последовательность обработки: 1) вырезать фрагмент 1 2) преобразовать фрагмент 1 3) вырезать фрагмент 2 4) преобразовать фрагмент 2 5) преобразовать перекодированные фрагменты в выходные данные? Причиной этого является то, что чанки должны иметь возможность транскодироваться в распределенной среде перед тем, как их снова объединить в выходной файл.
Mugba 9 лет назад
0
1 ответ на вопрос
1
Rajib
По сути, вы говорите об отдельных кодировках для отдельных фрагментов видео, которые могут быть выполнены в виде отдельных прогонов, как в случае вашей команды ffmpeg -i mtb.mp4 -ss 05 -t 5 -c:v libx264 -c:a aac -strict -2 transcoded3.mp4.
Чтобы использовать Trimфильтр для нарезки фрагмента, скажем, от 5 до 10 секунд, используйте это (для этого используются setptsи asetpts):
Когда я использую фильтр обрезки, подобный этому, каждый результирующий фрагмент имеет некоторое молчание в начале своего аудиопотока, так же как и с командой, которая использует поиск и затем транскодирование. Если это добавленное молчание не может быть предотвращено, это не может быть подходом для моего варианта использования, так как мне нужно иметь возможность вырезать фрагменты видео, транскодировать их и объединять их так, чтобы выходной файл звучал и был похож на входной файл. Пока что спасибо за помощь!
Mugba 9 лет назад
0