ffmpeg
下载
配置
下载完成后解压该压缩包,在
bin文件里会有三个exe文件,复制此时的地址找到
环境变量,在用户变量的Path中加入ffmpeg路径
C:\Users\yhq10>ffmpeg -version
ffmpeg version 7.0.1-essentials_build-www.gyan.dev Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 13.2.0 (Rev5, Built by MSYS2 project)
configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-bzlib --enable-lzma --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-sdl2 --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-mediafoundation --enable-libass --enable-libfreetype --enable-libfribidi --enable-libharfbuzz --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-dxva2 --enable-d3d11va --enable-d3d12va --enable-ffnvcodec --enable-libvpl --enable-nvdec --enable-nvenc --enable-vaapi --enable-libgme --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libtheora --enable-libvo-amrwbenc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-librubberband
libavutil 59. 8.100 / 59. 8.100
libavcodec 61. 3.100 / 61. 3.100
libavformat 61. 1.100 / 61. 1.100
libavdevice 61. 1.100 / 61. 1.100
libavfilter 10. 1.100 / 10. 1.100
libswscale 8. 1.100 / 8. 1.100
libswresample 5. 1.100 / 5. 1.100
libpostproc 58. 1.100 / 58. 1.100
使用
pip install ffmpeg-python -i https://pypi.tuna.tsinghua.edu.cn/simple
import requests
import re
import json
from pprint import pprint
import subprocess
url = "https://www.bilibili.com/video/BV1wD4y1o7AS/"
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
'referer': 'https://www.bilibili.com/'
}
html_data = requests.get(url, headers=headers).text
video_data = json.loads(re.findall('<script>window.__playinfo__=(.*?)</script>', html_data)[0])
video_url = video_data['data']['dash']['video'][0]['backupUrl'][0]
audio_url = video_data['data']['dash']['audio'][0]['backupUrl'][0]
video_file = requests.get(video_url, headers=headers).content
audio_file = requests.get(audio_url, headers=headers).content
with open('v1.mp4', 'wb') as f:
f.write(video_file)
with open('a1.mp3', 'wb') as f:
f.write(audio_file)
cmd = 'ffmpeg -y -i v1.mp4 -i a1.mp3 -c:v copy -c:a aac -strict experimental new_video.mp4'
subprocess.Popen(cmd, shell=True)
pprint('视频下载成功')