AI办公自动化:多音频轨电影视频抽取出英语音频

很多电影视频是有中、英、粤语等多个音频轨的,如果直接转换成音频,很有可能不是自己想要的那种语音。

可以先查看音频流信息,确定属于哪个音频轨:

Reading video file: E:\1-7\比得兔1.mp4

输出音频流信息

Available audio streams:

Stream 0: und - aac

Stream 1: und - aac

Stream 2: und - aac

Stream 3: und - aac

Stream 0应该是英语;

然后,在Deepseek中输入提示词:

你是一个Python编程专家,写一个Python脚本:

读取视频:"E:\1-7\比得兔1.mp4"

这个Mp4视频有多个音频轨,选择其中的Stream 0音频轨,提取出来保存为mp3音频文件,保存在和视频同一个文件夹中。

注意:每一步都要输出信息到屏幕上

源代码:

import ffmpeg

import os

def extract_audio_from_video(video_path, stream_index=0):

获取视频文件的目录和文件名

video_dir, video_filename = os.path.split(video_path)

video_name, video_ext = os.path.splitext(video_filename)

输出信息

print(f"Reading video file: {video_path}")

使用 ffmpeg 获取视频的音频流信息

try:

probe = ffmpeg.probe(video_path)

except ffmpeg.Error as e:

print(e.stderr, file=sys.stderr)

sys.exit(1)

audio_streams = [stream for stream in probe['streams'] if stream['codec_type'] == 'audio']

输出音频流信息

print("Available audio streams:")

for i, stream in enumerate(audio_streams):

print(f"Stream {i}: {stream['codec_name']}")

if stream_index >= len(audio_streams):

print(f"Stream index {stream_index} is out of range.")

return

selected_stream = audio_streams[stream_index]

输出选择的音频流信息

print(f"Selected audio stream: Stream {stream_index} - {selected_stream['codec_name']}")

构建输出音频文件路径

output_audio_path = os.path.join(video_dir, f"{video_name}_stream{stream_index}.mp3")

使用 ffmpeg 提取音频并保存为 MP3 文件

try:

(

ffmpeg

.input(video_path)

.output(output_audio_path, map=f"0:a:{stream_index}", acodec='libmp3lame')

.run(capture_stdout=True, capture_stderr=True)

)

except ffmpeg.Error as e:

print(e.stderr.decode(), file=sys.stderr)

sys.exit(1)

输出完成信息

print(f"Audio extracted and saved to: {output_audio_path}")

使用函数

video_path = "E:\\1-7\\比得兔1.mp4"

extract_audio_from_video(video_path)

相关推荐
风象南1 小时前
普通人用AI加持赚到的第一个100块
人工智能·后端
牛奶2 小时前
2026年大模型怎么选?前端人实用对比
前端·人工智能·ai编程
牛奶2 小时前
前端人为什么要学AI?
前端·人工智能·ai编程
罗西的思考5 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab5 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab5 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
格砸7 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云7 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny8657 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔7 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能