gpt4 book ai didi

python-3.x - 如何在ffmpeg中为文件指定随机名称

转载 作者:行者123 更新时间:2023-12-04 22:55:01 25 4
gpt4 key购买 nike

如何为 ffmpeg 中的输出文件提供随机名称。

我想将文件名作为当前日期时间(例如 2020-3-18-10-13-4.mkv)。

我不想给出诸如 output.mkv 之类的修复名称。

import os
import subprocess
import tkinter as tk
import datetime

root = tk.Tk()

os.chdir(f'C://Users/{os.getlogin()}/desktop/')
def recording_voice():
global p
p =subprocess.Popen('ffmpeg -i video.avi -i audio.wav -c:v copy -c:a aac -strict experimental -strftime 1 "%Y-%m-%d_%H-%M-%S.mkv"' ,stdin=subprocess.PIPE)


rec_btn = tk.Button(text='Start merging', width=20, command=recording_voice)
rec_btn.pack()


root.mainloop()

最佳答案

您可以使用 now.strftime和字符串连接:

假设您实际上并不想要随机文件名,而只是想要包含当前日期和时间的名称,您可以使用以下代码:

import subprocess
from datetime import datetime

# datetime object containing current date and time
now = datetime.now()

# Build file name with current date and time (with inverted commas):
dt_file_name = now.strftime('"ex.%Y-%m-%d_%H-%M-%S.mkv"')

# Concatenate file name to ffmpeg command line (use plus for strings concatenation):
p = subprocess.Popen('ffmpeg -i video.avi -i audio.wav -c:v copy -c:a aac -strict experimental -strftime 1 ' + dt_file_name, stdin=subprocess.PIPE)

您也可以使用 now.strftime在一行中(更短但不太优雅):
p = subprocess.Popen(now.strftime('ffmpeg -i video.avi -i audio.wav -c:v copy -c:a aac -strict experimental -strftime 1 "ex.%Y-%m-%d_%H-%M-%S.mkv"'), stdin=subprocess.PIPE)

如果您想确保获得不同的文件名,您还可以包括微秒:
dt_file_name = now.strftime('"ex.%Y-%m-%d_%H-%M-%S-%f.mkv"')

关于python-3.x - 如何在ffmpeg中为文件指定随机名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60733699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com