有没有一种格式可以在 iPhone 和 Android 上播放?
我一直在尝试使用 ffmpeg 对 MP4 中的视频进行编码——但是,使用 libx264 或 mpeg4——这些视频要么只能在 Android 中运行,要么在 iPhone 中运行 - 不能同时在两者中运行。
这可能吗?如果是,参数是什么?
谢谢
我可以更改ftypmp4 文件的格式吗?
我有两个 mp4 文件,并将其放入媒体信息中,看看有什么区别。另一个 mp4 可以在我的 SanDisk Sansa Fuze 设备上播放,而另一个则不能。正在播放的那个有ftyp一个mp42。我使用的编码器megui用作isom其编解码器 ID。
当存在编码问题时,我们都熟悉黑色菱形 (?) 内的白色问号。这个“角色”有正式名称吗?或者它只是被称为“黑色钻石内的白色问号”?如果有这个名字会是什么?
我正在尝试通过使用文本编辑器直接修改文件来向 PDF 文件添加页面标签。
当我在文本编辑器中打开 PDF 并保存它而不进行任何更改时,该文件会损坏并且无法通过 Adobe Reader 打开。
为什么会出现这种情况?
我想到的解决方案是使用十六进制编辑器,但这似乎不是处理文件的舒适方式。还有其他办法吗?
作为文本编辑器,我使用 Sublime Text。
我在 StackOverflow 上找到了这个答案
ffprobe -show_streams -i "file.mp4"
Run Code Online (Sandbox Code Playgroud)
但正如您可以在评论中确认的那样,它没有显示 CRF 值
用什么工具我可以得到一些信息,比如 GOP 大小?!CRF等的价值?!
如何找到视频文件(h264)的CRF值?
我和妻子之间的电子邮件最近开始因在邮件中插入字符序列“�”而损坏。这似乎是一个编码问题。
SO上的这个问题将字符串标识为字符“?”的UTF-8。谷歌搜索发现的各种讨论表明,人们在电子邮件和浏览网站时遇到过各种其他字符(例如撇号和省略号)被此字符串替换的情况。似乎这个 UTF-8 字符被用作各种不可渲染字符的通用替代。
在这种情况下,我在 Linux 中使用 Thunderbird (V52.5.0),而我妻子在 Windows 7 中使用 Outlook (2007)(均将消息格式化为 HTML)。
Thunderbird 插入了一些不可见的格式标记,这些标记在 Outlook 中被这个字符串替换。该字符串出现在两种类型的位置:
替换发生在 Outlook 中,并应用于已在 Thunderbird 中呈现的消息线程中的所有内容。这包括源自 Outlook 但在回复 Outlook 之前是 Thunderbird 中呈现的线程的一部分的旧邮件。
这是字符替换而不是渲染问题。一旦字符串被替换,稍后在任一系统上查看消息时,损坏仍然存在。
这是一个最近出现的问题,所以我认为其中一个系统上的软件或操作系统更新是有责任的。
我查看了 Thunderbird 和 Outlook 中的编码设置,确实,它们是杂乱无章的组合;一些 UTF-8,一些西欧(不知道它可能来自哪里),以及其他一些东西,我认为是西方 ISO 8859)。我将所有内容都设置为 UTF-8。这些是我发现和改变的:
Preferences | Display | Formating | Fonts Advanced | Text EncodingTools | Options | Mail Format | International OptionsTools | Options | Other | General | Advanced Options | Use Unicode …有时,当我在电影上添加字幕时,它会显示一些奇怪的字符而不是波斯语单词。经过几次搜索,我发现一个名为“per sub fix”的软件,它非常好,解决了我的一些问题,但不是全部。它只支持 . srt 文件。所以我对其他字幕格式(如 .ass 或 .sub 等)仍然有问题,您知道如何在不使用任何软件的情况下手动修复这些字幕吗?该软件如何“修复”字幕?
我使用的是 Windows,请不要说更改播放器设置。
我无法使用记事本++尝试更改编码来修复它
编辑:我忘记上传图片,所以这里的字幕文本包含奇怪的字符,在使用每个子修复进行修复之前:
这是固定且正确的字幕:
我已将一个目录从 Mac 同步到 Linux 机器,其中包含带有特殊字符(元音变音)的文件和文件夹。不幸的是,Mac 使用 NFD 编码(感谢 Apple!),rsync 没有将其转换为 NFC 标准文件名编码。rsync列出这些文件,例如传输期间Einversta?\\#210ndniserkla?\\#210rung.pdf应该包含的文件Einverst\xc3\xa4ndniserkl\xc3\xa4rung.pdf。在 Linux 机器上,这会导致重复文件,例如包含两个同名文件的文件夹Einverst\xc3\xa4ndniserkl\xc3\xa4rung.pdf(一个采用 NFD 编码,一个采用 NFC 编码)。
如何找到 NFD 编码的所有文件并将其删除?这必须是可能的,例如通过使用find.
我看到其他人也有这个问题,但我还没有看到解决方案。如果我尝试使用 ffmpeg 进行搜索,则会出现一些错误,并且生成的视频在移动之前会冻结在开头的一帧处。即使我在 VLC 中打开视频,我也无法找到问题发生的确切时间点。视频好像被损坏了,但播放正常,可以修复吗?
如果我将输入的容器格式从 ts 更改为 mp4,则不会发生错误,但我会看到黑屏,而不是冻结的帧。
完整命令和输出:
$ ffmpeg -ss 5.5 -i video.ts -to 10 -avoid_negative_ts make_zero -vcodec libx264 -crf 23 -acodec copy output.ts
ffmpeg version 4.1.3 Copyright (c) 2000-2019 the FFmpeg developers
built with Apple LLVM version 10.0.1 (clang-1001.0.46.4)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.1.3_1 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags='-I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/adoptopenjdk-11.0.2.jdk/Contents/Home/include/darwin' --host-ldflags= --enable-ffplay --enable-gnutls --enable-gpl --enable-libaom --enable-libbluray --enable-libmp3lame --enable-libopus --enable-librubberband --enable-libsnappy --enable-libtesseract --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-lzma --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librtmp --enable-libspeex …Run Code Online (Sandbox Code Playgroud) (重新编写问题以使其更有用)
我有一个批处理脚本,它将与命令行程序交互,获取它们的输出,然后根据该输出执行决策。
我需要与之交互的程序之一是一个相当老的程序,所以我被它的怪癖所困扰。当我将其输出通过管道传输到文本文件时,该文本文件采用 UTF-16 LE 编码。
我是这样做的:
program -parameter > resultat.txt
Run Code Online (Sandbox Code Playgroud)
在Windows 7下,这种编码对于cmd/批处理工作来说似乎很麻烦,因为你无法将这样的文本文件的内容读入变量。
这是一个示例(仅使用文本文件的第一行):
set /p Var=<resultat.txt
echo %Var%
cmd /k
Run Code Online (Sandbox Code Playgroud)
它只是没有任何回声,说“ECHO 已打开”。
另外,如果您使用“type”来打印文本文件的内容,则会出现奇怪的空格,表明它没有被正确处理。
尝试的解决方案 [1] - Powershell
经过研究,发现powershell可以转换txt编码,使用的方法如下:
Get-Content -Path "path\file.txt" | Out-File -FilePath "path\new_file.txt" -Encoding <encoding>
Run Code Online (Sandbox Code Playgroud)
使用 Notepad++,我做了一些研究,我需要获得什么编码?
UTF-8(无BOM),相当于记事本中的“ANSI”,是我需要的编码,将文本文件加载到变量中,并且“type”命令在使用此编码时都可以完美地工作。我怎么知道?如果我在记事本中打开管道文本文件,然后重新保存为“ANSI”编码,一切都会完美运行。
-Encoding ascii
Run Code Online (Sandbox Code Playgroud)
...这个选项应该有效,因为这会产生 UTF-8(无 BOM)结果,但它似乎无法处理 UTF-16 LE 源编码格式,并且不会产生可用的输出。当我在 Notepad++ 中打开生成的文件时,它将其识别为 UTF-16 LE“Unix”,这很奇怪。
有趣的是:如果我在记事本中将管道 txt 文件重新保存为“unicode”,则会生成一个 UTF-16 LE BOM 文件,该文件与上述转换参数一起生成完美的 UTF-8 文件。此时,我扩展了研究范围,提出了“如何将 BOM 添加到 UTF-16 LE 编码?”的问题。因为我可以将这些知识与 powershell 知识结合起来。然而,剧透警告:我没能找到一个像样的答案。
-Encoding utf8
Run Code Online (Sandbox Code Playgroud)
...是另一个类似的选项,但它会生成 UTF-8 BOM 文件(相当于在记事本中另存为“UTF-8”),这会产生损坏的输出。
总结一下:
我正在寻找一种命令行工具/方法(开放或专有,第一方或第三方),以便能够实现如下转换:
UTF-16 LE - …