是否可以在不先写入文件的情况下将来自FFMPEGython的音频和视频组合在一起?

2024-09-29 23:25:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用ffmpeg python库

我使用了示例代码:https://github.com/kkroening/ffmpeg-python/tree/master/examples异步读入并处理音频和视频流。处理是定制的,而不是内置ffmpeg命令可以实现的(想象一下音频和视频上的tensorflow deep dreaming)。然后我想重新组合我创建的音频和视频流。目前,我能看到的唯一方法是将这两个流写入单独的文件(如在这个答案中:How to combine The video and audio files in ffmpeg-python),然后使用ffmpeg将它们合并。这有一个主要缺点,即结果不能流式传输,即音频和视频必须完全处理完毕,然后才能开始播放组合的音频/视频。是否有任何方法可以将它们组合在一起而不作为中间步骤转到文件

从技术上讲,流最初是从ffmpeg读入的事实是无关紧要的。你不妨假设我处于以下情况:

def audio_stream():
    for i in range(10):
        yield bytes(44100 * 2 * 4) # one second of audio 44.1k sample rate, 2 channel, s32le format

def video_stream():
    for i in range(10):
        yield bytes(60 * 1080 * 1920 * 3) # one second of video 60 fps 1920x1080 rgb24 format

# how to write both streams of bytes to file without writing each one separately to a file first?

我想使用ffmpeg.concat,但这需要ffmpeg.inputs,它只接受文件名作为输入。还有别的办法吗?以下是文件:https://kkroening.github.io/ffmpeg-python/


Tags: 文件oftoinhttpsgithub视频bytes

热门问题