小编Ash*_*aka的帖子

ffmpeg 2.6.8 版:过滤器图描述中的流说明符 ':a' 不匹配任何流

我不明白为什么这不起作用..我试图用 [0:v]/[0:1]/[0:v:0] 和 [0:a] 获取音频流/[0:0]/[0:0:0]。没有任何效果。

解释输入:

1.1st 输入流是一个可以具有不同分辨率的视频,过滤器在其上添加填充以使其成为 600:480。

2.2nd 输入是一个覆盖 png,它的比例已经是 5:4.. 在它被覆盖在过滤器之前只是让它变成 600:480。

3.3rd 和 4th 也是视频,我不在乎它们是否被拉伸..n 它们被拉伸到 600:480。

4.so 最后有 3 个流 1 个重叠视频 2 个需要连接的拉伸视频。

这是命令:

ffmpeg 
-i '/home/vidinflux/public_html/assets/temp/2018020116464612/2018020116464612.mp4' 
-i '/home/vidinflux/public_html/assets/temp/2018020116464612/2018020116464612_overlay.png' 
-i '/home/vidinflux/public_html/assets/user/736/video/Lines1.mp4' 
-i '/home/vidinflux/public_html/assets/user/736/video/Lines11.mp4' 
-filter_complex
"[0:v]trim=0:138,setpts=PTS-STARTPTS[v0];[0:a]atrim=0:138,asetpts=PTS-STARTPTS[a0];[v0]scale='gte(iw/ih\,600/480)*600+lt(iw/ih\,600/480)*((480*iw)/ih):lte(iw/ih\,600/480)*480+gt(iw/ih\,600/480)*((600*ih)/iw)',pad='600:480:(600-gte(iw/ih\,600/480)*600-lt(iw/ih\,600/480)*((480*iw)/ih))/2:(480-lte(iw/ih\,600/480)*480-gt(iw/ih\,600/480)*((600*ih)/iw))/2:black'[x];[1:v]scale=600:480[y];[x][y]overlay=0:0[z];[2:v]scale=600:480,setsar=1:1[x0];[3:v]scale=600:480,setsar=1:1[x1];[x0][2:a][z][a0][x1][3:a]concat=n=3:v=1:a=1[v][a]" 
-map "[v]" 
-map "[a]" 
-c:v libx264 
-shortest /home/vidinflux/public_html/assets/temp/2018020116464612/2018020116464612_final.mp4
Run Code Online (Sandbox Code Playgroud)

这是我得到的完整错误:

Stream specifier ':a' in filtergraph description  [0:v]trim=0:138,setpts=PTS-STARTPTS[v0];[0:a]atrim=0:138,asetpts=PTS-STARTPTS[a0];[v0]scale='gte(iw/ih\,600/480)*600+lt(iw/ih\,600/480)*((480*iw)/ih):lte(iw/ih\,600/480)*480+gt(iw/ih\,600/480)*((600*ih)/iw)',pad='600:480:(600-gte(iw/ih\,600/480)*600-lt(iw/ih\,600/480)*((480*iw)/ih))/2:(480-lte(iw/ih\,600/480)*480-gt(iw/ih\,600/480)*((600*ih)/iw))/2:black'[x];[1:v]scale=600:480[y];[x][y]overlay=0:0[z];[2:v]scale=600:480,setsar=1:1[x0];[3:v]scale=600:480,setsar=1:1[x1];[x0][2:a][z][a0][x1][3:a]concat=n=3:v=1:a=1[v][a] matches no streams.
Run Code Online (Sandbox Code Playgroud)

还有这些警告:

[Parsed_setsar_9 @ 0x219fba0] num:den syntax is deprecated, please use num/den or named options instead
[Parsed_setsar_11 @ 0x21a4840] num:den syntax …
Run Code Online (Sandbox Code Playgroud)

ffmpeg

4
推荐指数
1
解决办法
5878
查看次数

如何将 asyncio 与 django Rest api 框架一起使用,就像 jquery 承诺的工作方式一样,以便响应不需要等待

我在 python 3.7 上运行 django 2.2.3。我想要一个带有 asyncio 的解决方案,以便 api 可以只调用异步函数并返回响应,而无需等待我们使用 jquery Promise 执行操作的方式。定义my_coro只是举例。我将运行moviepy通常需要 40-50 秒才能完成的功能。我不希望 api 等待那么长时间才能发送响应。我也对如何处理线程池感到困惑。这里如何使用线程池呢?因为我也打算让电影迭代更快。那么如何创建一个处理调用的池my_coro呢?

async def my_coro(n):
    print(f"The answer is {n}.")

async def main(): 
    await asyncio.gather(my_coro(1),my_coro(2),my_coro(3),my_coro(4))

class SaveSnaps(APIView):
    def post(self, request, format = None):
        if request.user.is_anonymous:
            return Response({"response":"FORBIDDEN"}, status = 403)
        else:
            try:
                asyncio.run(main())
                return Response({"response": "success"}, status = 200)
            except Exception as e:
                return Response({'response':str(e)}, status = 400) 
Run Code Online (Sandbox Code Playgroud)

更新: 我尝试使用芹菜。但由于我不会使用周期性任务,实际上我需要异步接收 blob 数组作为参数的方法。celerytask.delay给我一个错误,因为任务需要可序列化的参数。所以我回到了这一点。我不确定我是否应该坚持使用线程解决方案或其他解决方案。

更新:我忘了分享我最后做了什么。我转移到celery. 但由于预期celery …

python django asynchronous django-rest-framework python-asyncio

1
推荐指数
1
解决办法
4329
查看次数

Fabric set('src',url) 不工作,但 setSrc(url) 工作

所以我有这两行代码-

  1. canvas.item(0).set('src',url); canvas.renderAll();
  2. canvas.item(0).setSrc(url); canvas.renderAll();

因此,现有画布的图像在第 0 层加载。因此,当我使用 Solution1 时,它应该更改图像。但它没有反映。当我尝试时console.log(canvas.item(0)),它显示url设置为src中的属性object array,但它从未反映。然后当我使用Solution2时,它就起作用了。但即便如此,它还是有问题。我必须运行 Solution2 两次然后它就会显示。有什么问题吗?

canvas fabricjs

0
推荐指数
1
解决办法
1824
查看次数