Author: admin

使用ffmpeg修改视频文件的分辨率

这种方法是在Linux系统(几乎任何发行版)中调整视频文件大小的最佳方法之一,也是Windows和Mac用户的绝佳替代方案。

更改视频文件的分辨率将是我们在处理视频文件时将执行的最常见操作之一,因此ffm​​peg能够完美地完成此操作。我们应该想要更改视频文件的分辨率有几个原因,例如:

  • 减少视频的大小。这可以通过降低视频的分辨率来实现。如果我们采用高清(1920x1080像素)的视频,但我们知道我们永远不会在支持比1024x768更高分辨率的屏幕上看到,我们可以降低视频分辨率以适应这种新分辨率,从而节省大量存储空间空间,如果在互联网上使用,也可以节省带宽。
  • 很多时候,视频文件的分辨率会发生变化,从而使其格式标准化。也就是说,如果我们有几个视频并且我们希望它们都在同一分辨率下,则必须经历这个改变分辨率的过程。

在现代网站的开发中,根据它们出现的位置来分辨各种分辨率的视频是非常有用的。我们可以开发具有响应式设计的网站,其中最适合用户的视频播放。例如,如果我们有各种格式的视频 - 我们说1920x1080,1280x720和640x360-我们可以设计一个响应式网站,让访问者根据访问者浏览器节省带宽重现正确的视频分辨率(请记住,移动用户通常支付传输数据,因此最好尽可能少地传输流量)

在这个例子中,我们将高清格式(1920x1080像素)的视频分辨率降低到640x360(对于宽高比16:9,这是一个相当常用的配置):

ffmpeg -i video_1920.mp4 -vf scale=640:360 video_640.mp4 -hide_banner

仅需要使用-vf scale = 640:360以新的所需分辨率(640:360)指示缩放视频滤波器  。要考虑:

  • 我们可以指出我们想要的任何分辨率,但生成的视频将始终具有相同的宽高比。也就是说,它不会扭曲图像,如果视频的宽高比为16:9,它将保持视频的16:9宽高比。该程序将调整生成的视频,使其符合我们给出的分辨率。
  • 更改分辨率时,视频必须再次进行编码过程,因此根据输出格式和用于输出的编解码器,过程可能会很慢。
  • 我们还没有提到它,但大多数时候  将视频转换为更高的分辨率  是没有意义的,因为视频质量没有任何改善。

更改视频宽高比

如果我们想要改变视频的外观,知道图像会显得扭曲,我们可以使用额外的过滤器“ setdar”。想象一下,在前一种情况下,我们想要将16:9的宽高比改为4:3,因此视频的分辨率为4:3宽高比,在这种情况下,它将是640x480。进行此转换的ffmpeg命令将是:

ffmpeg -i video_1920.mp4 -vf scale=640:480,setdar=4:3 video_640x480.mp4 -hide_banner

我们在这种情况下获得的视频输出  video_640x480.mp4  改变了原始视频的外观并且稍微扭曲了图像,但它将以新的外观获得我们想要的分辨率。

另一方面,如果我们不想依赖于使用可能

    

PHP获取远程http或ftp文件的md5值

PHP获取远程http或ftp文件的md5值

获取本地文件的md5值:

md5_file("/path/file.jpg");

获取远程http文件的md5值:

md5_file("https://www.baidu.com/img/bd_logo1.png")

PHP获取远程ftp文件的md5值:

md5_file("ftp://username:password@192.168.6.1/aa4c319f1b8197e381beeb8c45e6c68d.apk")

如果远程文件很大的话,执行会非常费时,因为要先下载下来。

 

    

基于JWE的API接口加密方案设计

前言

在这个互联网和移动互联网高速发展的时代,数据安全成了企业的头等大事。数据安全的范畴很大,包含:技术安全、服务安全、存储安全、传输安全等,本文主要是从传输安全的层面,设计一种基于JWE的API加密方案。

名词说明

**JWE **

JSON Web Encryption ,详细资料:http://self-issued.info/docs/draft-ietf-jose-json-web-encryption.html

目录

(一) 安全算法扫盲

(二) 安全方案演变

(三) JWE的介绍

(四) 基于JWE的API加密方案

本文主要讲解相关理论,后续会有实践的更新


(一) 安全算法扫盲

1.信息安全算法

1.1 加密相关算法

现代密码学中,把算法的加密技术主要分为:

单密钥模式

双密钥模式

无密钥模式

单密钥模式,也称为对称密钥模式,加密和解密方采用同一个密钥。采用这种模式的算法就叫做对称加密算法。

双密钥模式,也称作非对称密钥模式,加密和解密方采用不同的密钥。采用这种模式的算法就叫做非对称加密算法。

无密钥模式,也称作随机密钥模式,每次的密钥都是随机生成,使用一次之后失效。这是一种理想的加密模式,由于设计难度大,目前未得到广泛应用。

本文中主要针对前两类加密算法进行简单介绍。

1.1.1 对称加密算法(Symmetric Encryption)

对称加密算法,又称私钥加密算法,顾名思义加密和解密过程中只用到一个密钥,该密钥也称作私钥。

常见的对称加密算法有:DES、IDEA(基于DES)、3DES(基于DES)、RC4、RC5、RC6、AES。

特点

Feature

            

PHP进行AES/ECB/PKCS7 padding加密的例子(openssl)

上一篇文章讲到利用mcrypt对数据进行aes加密的方法,但是不支持php7.1.x版本,今天在stackoverflow上看到同样的问题,是使用openssl函数的处理方法,点击下面的链接stackoverflow查看问题,根据上面的问题整理出了一个简单的加密类,经测试完全符合业务需求,现在写出来,希望对以后的工作会有帮助。

PHP实现文件断点续传下载

PHP实现文件断点续传下载

<?php
//PHP 断点续传下载
function download($fileurl, $start = 0, $end = '')
{
    $task_sourcefile = '/path/downfile.mp4'; //本地保存的文件
        $sourceurl = $fileurl ;  //要下载的远程文件
        $tokenfile =  'downfile.token';
    $isfileexist =$this->check_remote_file_exists($sourceurl);
    if (!$isfileexist) {
        $isfileexist2 =$this->check_remote_file_exists($sourceurl);
        if (!$isfileexist2) {
            throw new \Exception('远程文件不存在');
        }
    }
    
    

移动前端不得不了解的HTML5 head 头标签

HTML的头部内容特别多,有针对SEO的头部信息,也有针对移动设备的头部信息。而且各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,有很多差异性。移动端的工作已经越来越成为前端工作的重要内容,除了平常的项目开发,HTML 头部标签功能,特别是meta,link等标签的功能属性显得非常重要。这里整理了一份 <head> 部分的清单,让大家了解每个标签及相应属性的意义,写出满足自己需求的 <head> 头部标签,可以很有效的增强页面的可用性。…

        

移动端]专用的meta

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
这个用的最多,
width和height指令分别指定视区的逻辑宽度和高度。他们的值要么是以像素为单位的数字,要么是一个特殊的标记符号。width指令使用device-width标记可以指示视区宽度应为设备的屏幕宽度。类似地height指令使用device-height标记指示视区高度为设备的屏幕高度。
user-scalable指令指定用户是否可以缩放视区,即缩放Web页面的视图。值为yes时允许用户进行缩放,值为no时不允许缩放 …