#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)