Как автоматизировать ffmpeg для разделения и объединения частей видео и синхронизации звука?Python

Программы на Python
Ответить
Anonymous
 Как автоматизировать ffmpeg для разделения и объединения частей видео и синхронизации звука?

Сообщение Anonymous »

У меня есть скрипт Python, который автоматизирует обрезку большого видео (2 часа) на более мелкие сегменты, а затем объединяет их без повторного кодирования, чтобы ускорить процесс. Скрипт выполняет следующие команды ffmpeg:

Код: Выделить всё

import subprocess

# Extract chunks
segments = [(0, 300), (300, 600), (600, 900)]  # example segments in seconds
for i, (start, length) in enumerate(segments):
subprocess.run([
"ffmpeg", "-i", "input.mp4", "-ss", str(start), "-t", str(length),
"-c", "copy", "-reset_timestamps", "1", "-y", f"chunk_{i}.mp4"
], check=True)

# Create concat list
with open("list.txt", "w") as f:
for i in range(len(segments)):
f.write(f"file 'chunk_{i}.mp4'\n")

# Concatenate
subprocess.run([
"ffmpeg", "-f", "concat", "-safe", "0",
"-i", "list.txt", "-c", "copy", "-y", "merged_output.mp4"
], check=True)
Все фрагменты взяты из одного и того же исходного видео с одинаковыми кодеками, разрешением и битрейтом. Несмотря на это, в финальном файле merged_output.mp4 иногда звук не синхронизирован, особенно после первого фрагмента.
Я пробовал использовать -ss перед -i для вырезания ключевых кадров, но проблема сохраняется.
Вопрос: Как я могу обеспечить правильную синхронизацию A/V в окончательном объединенном видео при программном сегментировании и объединении через ffmpeg без полного перекодирования? Есть ли способ настроить команды или процесс ffmpeg, чтобы избежать десинхронизации звука?

Подробнее здесь: https://stackoverflow.com/questions/792 ... e-audio-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»