我正在使用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/
看来你得用管子了。看一看“使用numpy逐帧处理视频”示例。如果传递到输入“pipe:”而不是文件名,则可以使用stdin.write推送原始数据
相关问题 更多 >
编程相关推荐