偶然间看到帖子,就想试一下,参考链接:https://blog.csdn.net/qq_43791724/article/details/110847722
我用的是 Anaconda3 + VSCode
直接用大佬的代码遇到一些问题
1.研究了好久ffmpeg怎么装怎么用(挠头)
2.shell命令执行不成功
下载ffmpeg,我没找到安装版,可以把ffmpeg.exe所在文件夹路径加入系统环境变量,或者shell命令用相对路径调用exe。
用ffmpeg的debug模式发现拿来当文件名的B站视频title有很多字符(比如空格)shell命令给认错了,于是给文件名单独加了双引号。
其他做了些小调整。
改了的内容见下,其他请移步参考链接
def video_audio_merge_single(video_name):
'''使用ffmpeg单个视频音频合并'''
print("视频合成开始:%s" % video_name)
video = '%s_video.mp4' % video_name
audio = '%s_audio.mp4' % video_name
bv = '%s.mp4' % video_name
import subprocess
command = '.\\ffmpeg\\bin\\ffmpeg.exe -i "%s" -i "%s" -c copy "%s" -y -loglevel quiet' % (video, audio, bv) #双引号能避免路径包含特殊字符的问题
subprocess.Popen(command, shell=True).wait()
# 等待合并结束后把中间文件删掉,把视频移动到BV文件夹下
os.remove(video)
os.remove(audio)
my_dir = '.\\BV\\'
if not os.path.exists(my_dir):
os.mkdir(my_dir)
shutil.move(bv, my_dir)
print("视频合成结束:%s" % video_name)
if __name__ == "__main__":
url = input('请输入B站链接:\n')
try:
single_download(url, 0)
print('下载成功√')
except BaseException:
print('下载失败×')