在Firebase中用Python实现视频加音频的异常问题排查
问题:Cloud Function视频音频合并输出0字节文件,模拟器与部署行为不一致
原本以为操作简单,但Firebase视频编辑存在**模拟器可用但部署后失效(或反之)**的问题。我尝试用Cloud Function实现给视频添加音频的功能,目前输出文件存在但大小为0字节。
测试函数逻辑
- 本地
testfiles文件夹存放video.mp4和audio.mp3测试文件 - 将测试文件上传至输入存储桶
testbucketinput - 创建空文件
trigger.txt并上传至触发器存储桶testbuckettrigger,触发合并函数 - 合并后的视频输出至
testbucketoutput存储桶
遇到的工具问题
ffmpeg无法稳定工作moviepy既不稳定,处理速度还极慢
测试代码
def addTestBuckets2(req: https_fn.Request) -> https_fn.Response: # 创建存储桶实例 testBucketInput = storage.bucket("testbucketinput") testBucketOutput = storage.bucket("testbucketoutput") testBucketTrigger = storage.bucket("testbuckettrigger") # 上传测试文件到输入存储桶 testBucketInput.blob("audio.mp3").upload_from_filename( "D:/backendfunctions/functions/testfiles/audio.mp3") testBucketInput.blob("video.mp4").upload_from_filename( "D:/backendfunctions/functions/testfiles/video.mp4") # 创建空触发文件并上传到触发器存储桶 open("trigger.txt", "w").close() testBucketTrigger.blob("trigger.txt").upload_from_filename( "trigger.txt") # 循环尝试下载输出文件 keepTrying = 0 while keepTrying < 100: try: testBucketOutput.blob("output.mp4").download_to_filename( "output.mp4") break except: sleep(.1) keepTrying += 1 # os.remove("output.mp4") return https_fn.Response("Bucket tested") @storage_fn.on_object_finalized(bucket="testbuckettrigger", region=region) def editvidtestfunction(event: storage_fn.CloudEvent[storage_fn.StorageObjectData | None],) -> None: """ 测试视频编辑功能限制 """ # 获取触发文件路径 file_path = event.data.name # 获取文件名 file_name = file_path.split("/")[-1] # just_path = file_path.split("/")[:-1][0] # just_name = '.'.join(file_name.split('.')[:-1]) # 从输入存储桶下载视频和音频到本地 storage.bucket("testbucketinput").blob( "video.mp4").download_to_filename("video.mp4") storage.bucket("testbucketinput").blob( "audio.mp3").download_to_filename("audio.mp3") # 使用ffmpeg合并视频与音频 cmd = f"ffmpeg -i video.mp4 -i audio.mp3 -c copy -map 0:v:0 -map 1:a:0 output.mp4" subprocess.run(cmd, shell=True) # 上传合并后的视频到输出存储桶 storage.bucket("testbucketoutput").blob( "output.mp4").upload_from_filename("output.mp4")
内容的提问来源于stack exchange,提问作者MrBom
相关产品推荐
相关产品推荐

