普通视图

发现新文章,点击刷新页面。
昨天以前BlogKe记录志

解决 MP4 视频无法在 iPhone 手机播放的问题

作者 Shankang Ke
2023年9月10日 16:01

本文适用于解决因视频编码导致无法播放的问题。通过 FFmpeg 对视频进行转码,让 MP4 视频能够在 iOS 设备上正常播放。

前言

使用 iPhone、iPad 等苹果设备时会发现有的 MP4 格式视频可以正常播放,而有的却无法播放,在部分 Android 设备上也存在类似问题。大部分情况下,这类无法播放的问题都是因为缺少对应视频编码的解码器造成的,要解决这类问题,一种方法是下载能够解码该视频的播放器,另一种方法是对视频转码。本文介绍后者,即如何对视频进行转码使其能被大多数设备播放。

如果去搜索格式转换、视频转码等内容,会找到各类视频处理工具,其中大部分都需要付费或者含有许多广告。实际上,很多视频问题使用 FFmpeg 就能解决问题,这款免费、开源且无广告的工具也能通过转码解决 MP4 无法在苹果手机播放的问题。

下载 FFmpeg

如果你的电脑上还没有 FFmpeg 程序,你可以前往 FFmpeg 官网(外部链接)下载最新版本的 FFmpeg 程序。

对于 Windows 用户,可以直接下载 FFmpeg 6.0 ZIP 压缩包,解压后即可使用命令行调用程序。

对于 Linux 用户,大多数 Linux 发行版的软件仓库中都包含了 FFmpeg 程序,可以直接使用包管理器安装。例如 Debian 和 Ubuntu 用户可直接使用 apt-get install ffmpeg 命令安装 FFmpeg 程序。

执行命令进行转码

使用 FFmpeg 对视频转码,让视频获得最好的兼容性,只用把下面命令中的 <input> 替换为需要转换的视频文件名,然后执行即可:

ffmpeg -i <input> -c:v libx264 -crf 23 -profile:v baseline -level 3.0 -pix_fmt yuv420p -c:a aac -ac 2 -b:a 128k -movflags faststart ksk-example.mp4

得到的 ksk-example.mp4 文件就是转码后生成的能够被大多数设备(包括使用 iOS 的 iPhone 和 iPad 设备)直接正常播放的 MP4 视频。

解释说明

现在问题已经解决。接下来我将进行一些解释说明,如果不感兴趣,可以直接略过。

H.264/AAC 的 MP4 是当前 HTML5 下兼容性最好的组合。对于没有 H.264 解码器的浏览器,则应该提供 VP9/Vorbis 的 WebM 视频。有这两种组合,基本上就可以兼容目前的所有主流浏览器。对于本文来说, H.264 编码的视频能够在大多数移动设备上正常播放,所以我们采用 H.264 编码。

用 -profile:v baseline -level 3.0 参数可以兼容一些无法处理 H.264 中 CPU 密集型特性的老设备,如果没有这个需求,可以去掉这一参数。

-crf 23 参数影响视频的质量,数值越低质量越好,一般设置在18到28这个区间内即可。如果需要指定视频码率,可以使用类似 b:v 1000k 这样的参数,这么做是因为一些性能不太强劲的设备可能会无法处理过高码率。

-movflags faststart 参数在流媒体播放的时候起作用,这个命令把视频容器的元信息移到文件头部。默认情况下(没有这个参数时),视频元信息在文件尾部,造成的结果是只有整个文件都加载完成后才能开始播放;有了这个参数,视频不必全部加载就可以播放。

The post 解决 MP4 视频无法在 iPhone 手机播放的问题 appeared first on 柯善康.

电脑和手机哪个更安全?

作者 Shankang Ke
2023年2月16日 22:27

虽然和用户有很大关系,但总体上来看在安全性方面,桌面设备(电脑)的上限更高、下限更低,移动设备(手机)的上限更低、下限更高。

传统桌面设备的操作系统在安全方面做得并不好,这可能与桌面设备最初面向的用户有关。在电脑进入千家万户之前,计算机设备主要作为专业领域的生产工具被使用,设备本身用途单一,而且操作者也接受过一定的培训,所以人们没怎么专门在桌面设备的安全设计上花费过多精力。桌面设备给了使用者更多的自由,这看似是一件好事,但也带来一些隐患——桌面设备的程序有很强大的能力。不知道你有没有注意过,在桌面设备上哪怕是记事本这样一个程序都能对你的全部文件进行读写操作。这意味着只要有一个程序出了问题,你所有的文件可能都要完蛋。(还记得敲诈了很多人的加密勒索病毒吗?)此外,很多桌面程序都有一些需要管理员权限的组件,以管理员身份运行的程序拥有对桌面操作系统的完全控制权,不受限制的权限让这些程序变得更加危险。

与传统桌面操作系统不同,安卓、iOS 这类现代移动设备操作系统在设计之初就考虑了更多的安全问题。不像桌面操作系统的程序能操作用户所有文件,在移动设备操作系统中,应用程序被隔离开来,运行在一个个沙箱里,大多数情况下只能操作各自的文件。如果沙箱正常工作,哪怕是病毒一样的恶意程序也无法更改其他应用的文件,更不要说篡改设备操作系统了。此外,代码签名、安全芯片以及常态化漏洞防范措施都使得现代移动设备操作系统更加难以入侵,大大提高了系统的安全下限。不过尽管如此,移动设备还是存在过于依赖供应商的问题,沙箱也并非总是好用。假如你使用 公司的 软件聊天,如果 软件被攻破,虽然有沙箱限制保护了其他部分,但是在 软件聊天的记录、收发的文件却难以幸免。所以在移动设备上你很大程度要信任、依赖供应商,无论是应用软件作者还是操作系统开发者又或者是设备生产厂商,你都需要把一部分安全责任托付给他们。然而现实中可以信赖的供应商非常有限,这就让移动设备的安全上限被拉低,用户即便有专业知识和能力也难防被供应商拖后腿。

不过对于大部分普通人而言,能正确安全地使用桌面设备并不简单,在威胁模型合适的条件下,移动设备的安全性或许更具优势。

The post 电脑和手机哪个更安全? appeared first on 柯善康.

制定你的安全计划

作者 Shankang Ke
2023年1月18日 13:36

这是 Your Security Plan 的中文翻译。英文原文由 Electronic Frontier Foundation(电子前哨基金会)采用 CC BY 协议进行许可。

英文版本日期:2021-02-01

翻译人员:柯善康


试图全天候保护你的数据(data)免遭任何人侵犯是一件既不现实又耗费精力的事情。但不用担心。安全是一个过程,经过周密规划,你完全可以制定出适合自己的安全计划。安全不只是用什么工具、下什么软件的问题。对于安全,首先要想清楚你面临什么样的独特威胁,你又能怎样应对这些威胁。

在计算机安全领域,威胁(threat)是指可能破坏你保护数据所作努力的潜在事件。你能通过确定“要保护什么”、“要提防着谁”来应对你面临的威胁。这个过程就是制定安全计划,也经常被称作“威胁建模(threat modeling)”。

这个指南会教你如何为自己的电子数据制定一份安全计划,并且教你如何确定什么样的解决方案对你来说是最合适的。

一份安全计划是什么样的呢?假设你想要保护你房子和财物,你可能会有下面这些问题:

我的房子里有什么值得保护的东西?

  • 资产(Assets)可能包括:珠宝、电子产品、财务文件、护照或照片

我需要提防着谁?

  • 敌对者(Adversaries)可能包括:窃贼、室友或访客

我需要采取防范措施的可能性有多大?

  • 我的邻居有盗窃史吗?我的室友/访客有多可信?我的敌对者有什么能力?我应该考虑哪些风险?

如果我失败了,后果有多严重?

  • 我的房子里有什么不可替代的东西吗?我有时间、金钱来更换这些东西吗?我的保险保不保被从房子里偷走的东西?

为了避免这些后果,我愿意承受多大的麻烦?

  • 我愿意为了敏感文件买一个保险柜吗?我买得起高质量的锁吗?我有时间到银行开一个保险箱来存放我的贵重物品吗?

问自己这些问题就是在评估你需要采取什么措施。如果你的财物价值很高,但是被盗的可能性很小,那么你可能不会花太多钱来买锁。但是,如果被盗的可能性很大,那你应该会去买市面上最好的锁,并且会考虑要不要安装一套安防系统。

制定安全计划能帮助你了解自己所面临的独特威胁,让你评估你的资产、你的敌对者、敌对者的能力以及你面临风险的可能性。

我如何给自己制定安全计划?我要从哪儿开始?

制定安全计划有助于你认识到可能会发生在你重视的东西上的事情,并且帮助你确定你需要提防着谁。制定安全计划时,回答下面这五个问题:

  1. 我想要保护什么?
  2. 我想要防着哪些人?
  3. 如果我失败了,后果有多严重?
  4. 我需要采取防范措施的可能性有多大?
  5. 为了避免潜在后果,我愿意承受多大的麻烦?

让我们来逐个看看这些问题。

我想要保护什么?

资产是你重视的东西,是你想要保护东西。在计算机安全领域,资产通常是某种信息。比如,你的电子邮件、联系人列表、即时消息信息、地理位置信息以及各类数据文件都可以是资产。你的设备也可以是资产。

给你的资产列个清单:你有哪些数据,数据存在哪里,哪些人有权访问,是什么在阻止其他人访问这些数据。

我想要防着哪些人?

要回答这个问题,很重要的一点是识别出谁想要把你或你的信息作为目标。对你的资产构成威胁的个人或实体就是“敌对者(adversary)”。例如,你的老板、你的前合作伙伴、你的商业竞争对手,甚至政府或者公网上的黑客都可能是潜在的敌对者。

给你的敌对者和想要获得你资产的对象列个清单。你的清单可能包括个人、政府机构或者法人团体。

取决于你的敌对者是谁,在一些情况下,完成安全计划的制定工作后这份清单可能是你需要销毁的东西。

如果我失败了,后果有多严重?

敌对者有很多种方法访问你的数据。比如,当你的私人通信经过网络时,敌对者可能会读取、删除或破坏你的数据。

不同敌对者的动机和策略会大不相同。对于想要阻止警察暴力执法视频传播的政府,仅仅是删除视频或者让视频无法被访问可能就足够了。与之形成对比,你的政治对手可能会想要在你不知道的情况下访问你的私密文件并且将其公之于众。

制定安全计划需要你想清楚,如果敌对者成功访问了你的数据,最坏的后果到底有多严重。要确定这一点,你应该考虑你的敌对者有哪些能力。比如,你的手机运营商能够访问你的完整通话记录。一个公共 Wi-Fi 网络上的黑客能够访问你未经加密的通信数据。政府可能有更强大的能力。

想一想你的敌对者可能会用你的私人数据干什么,记下来。

我需要采取防范措施的可能性有多大?

风险(Risk)指的是针对特定资产的特定威胁实际发生的可能性。风险和敌对者的能力密切相关。虽然你的手机运营商有能力访问你的全部数据,但他们把你的私人数据发在网上来损害你声誉的风险(可能性)却很低。

分清楚可能会发生的事情和这件事情会发生的可能性非常重要。比如,你面临房子倒塌的威胁,但这件事情发生在旧金山(经常地震)的风险比发生在斯德哥尔摩(不常有地震)的风险要大得多?

评估风险的过程主观性比较强。许多人认为某种威胁是完全不可接受的,无论威胁发生的可能性有多小都不行;因为哪怕这个威胁再罕见,事发之后的代价也完全不值得。而在其它情况下,哪怕风险很高,人们也会将其忽视,因为他们完全不把这个特定的威胁当作一个严重的问题。

想一想哪些威胁值得你重视起来认真对待,哪些威胁太罕见、太无害(或者太难应对)而无需担忧,记下来。

为了避免潜在后果,我愿意承受多大的麻烦?

对于安全,不存在完美选项。每个人的优先事项、顾虑之处和可用资源都有所不同。你的风险评估能帮助你在隐私、代价和便利性之间找到平衡,从而制定出最适合你的策略。

比如在涉及国家安全的案件中,客户的代理律师为了保护案件相关的通信可能会愿意使用更麻烦的手段,比如加密电子邮件;而这同一位律师在和家人日常通信时可能完全不会费这么多事。

想一想你能用哪些手段来减轻你面临的独特威胁,记下来。特别注意你是否受到任何财务限制、技术限制或社会限制。

定期检查安全计划

要记住,你的安全计划会随着情况的变化而变化,所以你最好经常检查自己的安全计划。

针对你的独特处境制定一份适合自己的安全计划。然后在日历上标出一个未来的日期,提醒自己检查安全计划是不是仍然适合当前的处境。

The post 制定你的安全计划 appeared first on 柯善康.

怎么说就怎么写

作者 Shankang Ke
2023年1月17日 12:25

这是 Write Like You Talk 的中文翻译。

英文原文作者:Paul Graham

翻译人员:柯善康


2015 年 10 月

有一个简单技巧能让更多人阅读你写的文章:用口语写作。

很多人在写作时候用的语言都会不同于和朋友交谈时所用的语言,句子的结构甚至选用的词语都不同。比如在英语口语里,没人会把 “pen” 作为动词使用。和朋友对话时,能用 “write” 你就不会说 “pen”,不然听起来很傻。

对我而言,“最后一根稻草”是我几天前读到的这么一句话:

善变的西班牙人自己宣称:“在阿尔塔米拉之后,一切都颓废了。”

这句话出自 Neil Oliver 的《A History of Ancient Britain》。我很抱歉用这本书举例子,因为它并不比其他的书更糟糕。但还是想象一下,在和朋友聊天的时候把毕加索(Picasso)叫作“善变的西班牙人”。聊天的时候哪怕只说这一句话都会让人皱眉,然而人们还是用这样的话写了一整本书。

好吧,书面语和口头语确实有所不同。但这种不同意味着书面语更差一些吗?

如果你想让人们阅读并且理解你写的文字,那么确实如此。书面语更复杂,读起来更吃力。同时书面语也更正式、更有距离感,会让读者的注意力转移。或许最糟糕的是,复杂的句子和花哨的词语会给你这位作者一种虚假的感觉,让你以为你说了很多东西,然而实际上你并没有说这么多东西。

你不需要复杂的句子来表达复杂的想法。在深奥领域的专家们相互交流领域内的想法时,句子本身的复杂程度也不超过他们谈论午饭吃什么所用的句子。当然,他们会用不同的词语。不过即便如此,他们也不会用没必要的词语。而且根据我的经验,主题越复杂,专家们说起话来就越没有那么正式。我认为一部分是因为他们需要证明的东西更少,另一部分是因为你谈论的想法越复杂,你就越不愿意语言成为一个障碍。

口语是想法的“运动装”。

我不是说口语永远最好。诗歌既是音乐又是文字,所以你可以在诗歌里说出聊天时不会说的东西。也有很多作家会在散文里使用花哨的词语。当然还有一些时候作者不希望自己的文字被轻易理解——比如在一些公司的关于坏消息的声明里或者在人文学科里不太真实的那一端。但是在其他时候,口语更好。

似乎对于大多数人来说用口语写作是一件难事。或许最好的解决方法是先按照你平常的方式写出第一稿,然后再逐句检查,问自己“我和朋友讲话的时候会这么说吗?”如果你不会跟朋友这么说,那么想象一下你会怎么跟朋友说,按照这样去修改。一段时间之后,这种“过滤器”就会在你写东西的时候起作用。一旦写出自己平常不会说的东西,你很快就能意识到。

在我发表一篇新文章之前,我会把它大声读出来,并且修改掉所有听起来不像聊天的东西。我甚至会改掉语音上尴尬的地方;我不知道这有没有必要,但也费不了多少事。

这个技巧可能不足以应对所有情况。我见过和口语相差太多的文章,没有办法一句一句修改。对于这种情况有一个更激进的方法。写完第一稿之后,尝试把你刚写完的东西解释给朋友听,然后把稿子中的东西换成你刚刚跟朋友讲的话。

经常有人告诉我,我写的文章就像我在说话。这种评价也表现出人们很少用口语写作。不然的话,大家写的文章都会有这样的效果。

仅仅是用口语写作这一件事就能让你超越 95% 的写手。这很简单:如果你不会对朋友这么说话,就不要写这样的句子。

感谢 Patrick Collison 和 Jessica Livingston 阅读这篇文章的草稿。


我可以在我的网站上镜像这个页面吗?

我更愿意你链接到这个页面。我希望能够更正拼写错误。

我可以在我学校的报纸上使用这个页面吗?

当然可以,尽管去吧。不过请注明原始 URL 链接。

The post 怎么说就怎么写 appeared first on 柯善康.

❌
❌