层楼终究误少年,自有早晚乱余生
题记书接上回,我们提到了自动下载ffmpeg并且自动配置到环境变量中,ffmpeg的问题得到了完美的解决。此时又有一个问题来了,视频云意味着【烧钱】,流量,cdn,存储,都是大头。那么如何做到几乎0成本的存储视频呢?图床的妙用现在的互联网上,各式各样的图床应有尽有。大部分都是已经运行了很久的图床,比如 路过图床,sm.ms等,如果切片之后的ts文件能存在这里,那么该多幸福啊..幻想终究是幻想,如果我们尝试着将一个.ts文件上传到上述的图床上的时候,他会提示我们路被堵死了吗?其实并不然,经过尝试,把ts文件合并到图片中,不会影响原有的图片,并且!我们可以把这批图床利用起来了 比如这张图片:video-000000.jpg 100%[===========================>] 8.20M 190KB/s in 39s一张jpg图片大小8.2M,成功的将ts文件混入其中,那我们尝试传到图床上呢?这里我插入了一个经过修改的hls.js的库,可以支持特殊的图片切面ts文件,接下来是测试。打开控制台可以清楚的看到这些都是伪装好的图片。而其中的ts部分
题记由上一篇中的一个需求(ffmpeg安装的问题),简单思考了下如何在不安装的情况下使用ffmpeg呢?ffmpeg从哪来?ffmpeg不多介绍,强大的功能是他能使用的如此广泛的原因之一。不过因为全部市面上可见的操作系统都不会内置,需要额外的安装操作,这对于懒一些的用户来说是不可接受的,那么怎么办?1 脚本中增加【自动】安装的流程?对于一个觉得shell是反人类的developer来说,这是不可接受的2 下载预编译的ffmpeg无论对developer还是对user来说,没有【编译流程】或者叫做【急速安装】的功能都是比较优化的(虽然有人说在自己的平台上定制会”性能更好“)。既然我们已经用全栈的python了,何不启动的时候通过python自动的配置好ffmpeg的环境呢?方案落地预编译的ffmpeg来源有如下几个windows: https://ffmpeg.zeranoe.com/builds/win64/static/ linux:https://johnvansickle.com/ffmpeg/releases/ osx:https://evermeet.cx/ffmpeg/
题记不知不觉中,马上就要步入30岁的大关了,新年立下的Flag之一就是坚持写博客,那么就开始吧...我们想要什么样的功能?思考一个产品其目标,当然最终的目的就是给用户(当然可以使自己),用着舒服,用的省心,功能强大,操作简单,以我自己作为一个最终的用户考量的话,那么...基本的编解码功能要有,切片要有,截封面图(支持gif)要有,强大的同步功能要能离线下载,这样我部署完了之后就可以挂机等着了要能推流,我想做个电台直播间一定要部署起来简单,最好跟当初的php without composer 的一样一样的.可靠性强大扩展性强,最好能自己写插件任务管理不要太费劲. . . .基于以上几点,选择技术栈转码,切片,多媒体操作 -> Ffmpeg快速搞后台 DjangoFfmpeg 不需要手动安装Celery作为强有力的异步任务支撑,已经收到了广大的商品化的验证离线下载的话,you-get 搞定一切当我写完这篇文章的时候,其实功能已经差不多了 ?基本的雏形完成插入一个视频试试{% dplayer "url=https://api.mov.pw/media/hls_media/9/inde
Shake-Click is Always a trouble in Android development.such as a button clicklistener implements in order jumping to another Activity.It will seem like follow:public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn_test).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
目前阶段的秒拍工程已经有了一套成熟的组件化体系,不过仍然很多问题等待解决。1.组件化完全依赖于工程的一些配置文件,导致没有一定经验的开发人员不能合理的把控好开闭原则。 2.当时提出的构想(组建一键切换为插件)仍然没有实现 3.繁琐的配置会容易出错。 为了解决这些问题,所以将提出下一代组件化的框架。1.基本思路主工程到底应该依赖什么?现阶段的主工程,都是通过gradle的dependence直接compile引入gradle工程内部的project,如果可以更换一种方式,比如通过 "compile远程依赖",来引入其他工程,内部的module也都加上版本控制,这样会大大增加工程的稳定性。主工程配置如下MpAppWrapperConfig { localMavenDir = "mpLocalMaven" exclude['yxplayer'] }其中,localMavenDir ,为指定的一个本地maven目录。通过此方法,构建一个本地的maven。然后其他工程publish到此maven目录下,可以增加编译的速度。module怎样定义最好?
躺在洞里
一介码农