获得徽章 0
赞了这篇沸点
好烦啊,今天内心要煎熬一天。事情是这样的,我们公司有个同事非常忙,让带个包子,我恰巧没事干非常闲,然后恰巧就是只有我没到公司,有机会带也看到消息了,但是但是今天我恰巧又要迟到了,差五分钟就迟到了,所以我就没带,到公司就两分钟了,然后我来公司就都盯着我,我假装自己没看到微信,在自己位置上坐下了,另一个同事看见我没带就又跑下去买了,我感觉我太不会做人了,关键两位同事都特别好,人善,热心,我感觉我做错了
早知道我打个卡,假装自己还没到再下去买个包子了
早知道我打个卡,假装自己还没到再下去买个包子了
展开
268
20
vue路由传参的时候,通过query携带参数:这种情况下传递的参数会显示在url后面?id=?,获取参数的方式this.$route.query,该方法的弊端在于,在页面跳转之间可正常使用,但是在进行页面刷新的时候,所有参数值会转化成字符串,如对象info会转换成字符串’[object,object]’,布尔值会转成’false’,从而导致错误。
评论
点赞
Redis:
Redis 数据结构可以分为三类。
1、基本类型 5 个(String、List、Set、SortedSet、Hash)
2、拓展类型 3 个(GEO、BitMap、HyperLogLog)
3、自定义 1 个
Redis 数据结构可以分为三类。
1、基本类型 5 个(String、List、Set、SortedSet、Hash)
2、拓展类型 3 个(GEO、BitMap、HyperLogLog)
3、自定义 1 个
评论
点赞
视频剪切时经常遇到的问题:
【1】直接copy剪切速度快,但是剪切时间不准确,可能出现黑屏、花屏现象。
【2】重新编码,时间相对准确,不会出现黑屏这些问题。但是速度很慢,特别是高清大视频,几秒钟要几分钟时间。
这些问题都是I帧导致的问题。
在视频编码中,I帧(Intra-Frame)是一种关键帧,也被称为独立帧或关键图像。与I帧相对的是P帧(Predictive Frame)和B帧(Bi-directional Frame),它们属于预测帧。
I帧是一种完整的图像帧,它不依赖于其他帧进行解码,因此可以独立地呈现视频内容。每个视频序列通常以I帧作为起点,然后通过向后或向前参考其他类型的帧来构建连续的视频流。
与I帧不同,P帧和B帧采用了更高级的编码技术,它们利用时间和空间上的冗余性来减小文件大小。P帧是通过参考先前的I帧或P帧进行编码的,而B帧则可同时参考前后的I帧、P帧或者其他B帧。
I帧在视频中的位置非常重要。由于I帧独立于其他帧,它可以用于视频的随机访问、剪切和编辑,而无需解码和参考其他帧。这也使得I帧成为视频快速播放、逐帧查看和生成缩略图的基础。
I帧相对于P帧和B帧的大小要大得多,因为它包含了完整的图像信息,而不是仅描述变化部分。因此,在视频编码中,根据需求和特定场景的要求,可以调整I帧的间隔来平衡视频质量和文件大小。
那么使用ffmpeg进行剪辑视频时,如何能做到速度快时间又准确呢?
想到的一个方案是:先粗剪辑copy、再细剪辑重新编码。
【1】直接copy剪切速度快,但是剪切时间不准确,可能出现黑屏、花屏现象。
【2】重新编码,时间相对准确,不会出现黑屏这些问题。但是速度很慢,特别是高清大视频,几秒钟要几分钟时间。
这些问题都是I帧导致的问题。
在视频编码中,I帧(Intra-Frame)是一种关键帧,也被称为独立帧或关键图像。与I帧相对的是P帧(Predictive Frame)和B帧(Bi-directional Frame),它们属于预测帧。
I帧是一种完整的图像帧,它不依赖于其他帧进行解码,因此可以独立地呈现视频内容。每个视频序列通常以I帧作为起点,然后通过向后或向前参考其他类型的帧来构建连续的视频流。
与I帧不同,P帧和B帧采用了更高级的编码技术,它们利用时间和空间上的冗余性来减小文件大小。P帧是通过参考先前的I帧或P帧进行编码的,而B帧则可同时参考前后的I帧、P帧或者其他B帧。
I帧在视频中的位置非常重要。由于I帧独立于其他帧,它可以用于视频的随机访问、剪切和编辑,而无需解码和参考其他帧。这也使得I帧成为视频快速播放、逐帧查看和生成缩略图的基础。
I帧相对于P帧和B帧的大小要大得多,因为它包含了完整的图像信息,而不是仅描述变化部分。因此,在视频编码中,根据需求和特定场景的要求,可以调整I帧的间隔来平衡视频质量和文件大小。
那么使用ffmpeg进行剪辑视频时,如何能做到速度快时间又准确呢?
想到的一个方案是:先粗剪辑copy、再细剪辑重新编码。
展开
评论
点赞
C++中基类采用virtual虚析构函数是为了防止内存泄漏。具体地说,如果派生类中申请了内存空间,并在其析构函数中对这些内存空间进行释放。假设基类中采用的是非虚析构函数,当删除基类指针指向的派生类对象时就不会触发动态绑定,因而只会调用基类的析构函数,而不会调用派生类的析构函数。那么在这种情况下,派生类中申请的空间就得不到释放从而产生内存泄漏。所以,为了防止这种情况的发生,C++中基类的析构函数应采用virtual虚析构函数。
用代码解释:
A* a = new B();// A为基类,析构函数不是虚函数
delete a; // 那么这里不会执行B的析构
用代码解释:
A* a = new B();// A为基类,析构函数不是虚函数
delete a; // 那么这里不会执行B的析构
展开
评论
点赞