Как написать эту команду ffmpeg на python

#python #ffmpeg

#python #ffmpeg

Вопрос:

У меня есть потоковые ссылки m3u8 (одна для видео и одна для аудио), которые я хочу объединить.

Для этого я использовал эту командную строку:

 ffmpeg  -i <audio> -i <video? -async 1 -c copy output.mp4
  

и это работает именно так, как я хочу, проблема в том, что я пытаюсь сделать это для 100 разных ссылок, и я хотел бы написать код вместо того, чтобы делать это вручную для каждой ссылки. Я знаю, что это можно сделать на python, но я не знаю, как перевести команду ffmpeg в код python.

Комментарии:

1. Можете ли вы предоставить примеры ссылок на аудио / видео?

2. os.system("ffmpeg -i <audio> -i <video> -async 1 -c copy output.mp4")

Ответ №1:

Запускать код без отслеживания отображаемого текста

 import os
os.system("ffmpeg -i <audio> -i <video> -async 1 -c copy output.mp4")
  

подпроцесс использует разные методы

 import subprocess

subprocess.run("ffmpeg -i <audio> -i <video> -async 1 -c copy output.mp4", shell=True)

subprocess.run( ["ffmpeg", "-i", "<audio>", "-i", "<video>", "-async", "1", "-c", "copy", "output.mp4"] )
  

Другие методы могут перехватывать отображаемый текст, чтобы вы могли проверить результат.

Ответ №2:

Я использовал код, предложенный фурасом, и он сработал:

 import os
import pandas as pd 

D=pd.read_excel("links.xlsx");


for i in range(len(D.index)):
    video=D.iat[i,0]
    audio=D.iat[i,1]
    command='ffmpeg  -i ' audio ' -i ' video ' -async 1 -c copy ' str(i) '.mp4'
    os.system(command)