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

  • 相关阅读:
    Pytorch深度学习——循环神经网络基础 (07)
    Deepin系统navicat15安装
    Java面向对象基础 笔记记录
    【Spark学习笔记】(一)—— Spark 概述和 WordCount
    【电子元件】常用电子元器件的识别之二极管
    《最新出炉》系列初窥篇-Python+Playwright自动化测试-38-如何截图-下篇
    动态规划——62. 不同路径
    数据服务器之raid1使用
    javascript中科学计数法的数正常显示转换
    SD-WAN最让人心动的五大功能
  • 原文地址:https://blog.csdn.net/AIGCTribe/article/details/139945062