gpt4 book ai didi

python - ffmpeg 原始视频和音频标准输入

转载 作者:行者123 更新时间:2023-12-02 22:15:24 25 4
gpt4 key购买 nike

目前,我正在使用 ffmpeg 从原始格式的帧开始生成在 OBS 中广播的视频输出。
问题是我们想给它添加一个音轨,也就是说:每一帧现在都有它的像素矩阵和它的音频。
我不确切知道如何让 ffmpeg 采用这种复合信号或最好的方法是什么。实际上我使用的是ffmpeg的标准输入。我使用此代码生成它:

url = "udp://" + udp_address + ":" + str(udp_port)
command = [
'ffmpeg',
'-loglevel',
'error',
'-re',
'-y',

# Input
'-i', '-',
'-f', 'rawvideo',
'-vcodec', 'rawvideo',
'-pix_fmt', 'bgr24',
'-s', str(size[0]) + 'x' + str(size[1]),

# Output
'-b:v', '16M',
'-maxrate', '16M',
'-bufsize', '16M',
'-pix_fmt', 'bgr24',
'-f', 'mpegts', url
]

proc = subprocess.Popen(command, stdin=subprocess.PIPE)
proc.stdin.write(frame.tobytes())
将音频添加到每个帧的最佳方法是什么?
谢谢

最佳答案

使用 named pipe (先进先出)。 Linux/macOS 的简化示例:

  • 制作命名管道:
    mkfifo video
    mkfifo audio
  • 输出/管道视频和音频到标准输出。这是使用 ffmpeg仅出于演示目的为命名管道生成视频和音频。
    ffmpeg -y -re -f lavfi -i testsrc2=s=1280x720:r=25 -f rawvideo video & ffmpeg -y -re -f lavfi -i sine=r=44100 -f s16le audio
  • 使用命名管道作为 ffmpeg 的输入:
    ffmpeg -f rawvideo -video_size 320x240 -pixel_format yuv420p -framerate 25 -i video -f s16le -sample_rate 44100 -channels 1 -i audio -t 10 output.mp4
  • 关于python - ffmpeg 原始视频和音频标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63762351/

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