小编Gia*_*968的帖子

使用 libx264 编解码器在 FFmpeg 中编码的视频无法在移动设备上按预期播放

我目前正在进行一个项目,抓取 IP 摄像机视频并将其流式传输到网站。该摄像机位于海滩,因此想法是将流信号发送到服务器,然后从服务器发送到客户端设备。

\n\n

为此,我在海滩上使用了 Raspberry Pi 3 B+,负责从相机获取信号并将其发送到服务器。

\n\n

I\xe2\x80\x99m 使用 FFmpeg 将 RTSP 信号转换为 HLS 片段,然后将它们存储在服务器上,然后使用 VideoJS 7.4.1 在浏览器中播放片段。

\n\n

这是我\xe2\x80\x99m 使用的 FFmpeg 中的代码:

\n\n
ffmpeg -i  rtsp://CameraIP/onvif1 -c:v libx264  -preset veryfast -crf 17 -an -hls_time 40 -hls_list_size 5 ftp://ServerIP/stream/abc.m3u8\n
Run Code Online (Sandbox Code Playgroud)\n\n

这工作得很好,但问题是,Raspberry 使用了大约 70% 的 CPU 使用率来执行此任务,因此我必须降低质量,好消息是相机信号已经是 h264 格式(说 h264本机)所以我尝试不将视频编解码器转换为 libx264,而是使用以下命令复制流:

\n\n
ffmpeg -i  rtsp://cameraIP/onvif1 -c:v copy -an -hls_time 40 -hls_list_size 5 ftp://ServerIP/stream/abc.m3u8\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用这个命令,CPU 使用率下降到 2% 或 3%,这很好,我可以提高质量,甚至更好,获得更好的相机。但问题是它不适用于手机(在 FireFix、Chrome 和 Safari 中尝试,在 Android 和 iO 操作系统中),VideoJS 显示此错误: …

h.264 ffmpeg

5
推荐指数
1
解决办法
4074
查看次数

了解“拒绝访问”以便恢复权限 - icacls 和 takeown

    \n
  • 在获得文件和文件夹的所有权之前,我想了解如何查看当前权限以便恢复它们。
  • \n
  • 我收到一条“访问被拒绝”消息,无法在 Windows 10 环境中使用提升的命令提示符查看或保存位置的权限:C:\\ProgramData\\Microsoft\\Windows\\SystemData。
  • \n
  • 看起来我可能需要先获得所有权,然后才能查看权限,然后使用 icacls \'reset\' 命令来修复它。
  • \n
\n\n

如果我尝试查看权限:

\n\n
C:\\Windows\\system32>icacls "C:\\ProgramData\\Microsoft\\Windows\\SystemData"\nC:\\ProgramData\\Microsoft\\Windows\\SystemData: Access is denied.\nSuccessfully processed 0 files; Failed processing 1 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果我尝试保存 ACL 文件:

\n\n
C:\\Windows\\system32>icacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /save "C:\\SystemData.acl" /t\nC:\\ProgramData\\Microsoft\\Windows\\SystemData: Access is denied.\nSuccessfully processed 0 files; Failed processing 1 files\n
Run Code Online (Sandbox Code Playgroud)\n\n

在“了解如何使用 Icals & Takeown”的答案中,该文件夹的所有者是 NT SERVICE\\TrustedInstaller,这实际上可能是 Windows 10 中的标准,尽管我只是猜测。

\n\n

我应该只使用 takeown 和 icals,找出权限,然后使用重置命令。

\n\n
takeown /f C:\\ProgramData\\Microsoft\\Windows\\SystemData /r\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /grant "%USERDOMAIN%\\%USERNAME%":(F) /t\nMake Changes\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData /setowner "NT SERVICE\\TrustedInstaller" /t\nicacls C:\\ProgramData\\Microsoft\\Windows\\SystemData …
Run Code Online (Sandbox Code Playgroud)

windows permissions file-permissions icacls windows-10

5
推荐指数
1
解决办法
1万
查看次数

如何增加移动热点上的设备数量?

我设置了移动热点。根据管理面板,我最多只能允许 8 个设备连接到它。

如何将最大连接设备数从 8 台设备增加到 20 台设备?

手机热点设置截图

networking wireless-networking windows-10 mobile-hotspot

5
推荐指数
1
解决办法
2万
查看次数

如何获得与父 shell 具有完全相同的当前环境的交互式 Bash 子 shell?

我想为自己\xe2\x80\x94和许多其他用户\xe2\x80\x94创建一个脚本,该脚本将配置使用特定版本工具集\xe2\x80\xa6的环境,然后使用该脚本打开一个交互式shell环境。

\n\n

似乎发生的情况是~/.bashrc执行了各种用户初始化脚本 ( ) 并破坏了部分设置。

\n\n

许多用户(包括我自己)在其 \xe2\x80\xa6 中配置了默认版本的工具~/.bashrc,并希望保持这种状态。

\n\n

我为其制作此脚本的备用版本仅在一小部分时间内使用。

\n\n

我已经尝试过以下方法:

\n\n
setup the environment\nbash\n      # runs ~/.bashrc and breaks the setup\n\nbash -i\n      # runs ~/.bashrc and breaks the setup\n\nbash --rcfile <(echo echo in subshell... $PATH)\n      the displayed $PATH is correct - but I immediately return\n      to the parent (no longer a subshell - not interactive)\n\nbash --rcfile -i <echo echo in subshell... $PATH)\n      the displayed $PATH is correct - but I immediately return\n …
Run Code Online (Sandbox Code Playgroud)

bash

5
推荐指数
1
解决办法
1595
查看次数

使用 HTTPS 在家庭网络上运行服务器

正如标题所暗示的那样,我正在尝试配置我的服务器以使用 HTTPS 提供流量。我已经能够公开服务器并从中接收信息,只是没有 HTTPS。

我将介绍一些有趣的细节,但这是主要目标。

  1. 我在家庭网络上的 Raspberry Pi 上运行了一个 Go 服务器,我将其用作个人 API。
  2. 我将家庭网络的端口 80 和 443 端口转发,并将其指向我的 Raspberry Pi 的静态 IP 地址
  3. 我拥有一个指向我的家庭网络 IP 的域。
  4. 我的 go 服务器在端口 8088 上运行,所以我使用 Nginx 将请求从基本 IP 转发到我服务器的端口。

到目前为止,这一切都运行良好,只是我想允许我的服务器使用 HTTPS。

我的问题是我在这个设置中有很多活动部分,那么什么负责确保 HTTPS:

  • 域?
  • 我的 Nginx 配置?
  • 服务器本身?
  • 以上所有的组合。

我不确定。

只是在寻找为此服务器启用 HTTPS 的方向,谢谢!

networking https nginx raspberry-pi

5
推荐指数
1
解决办法
2236
查看次数

BIOS 未检测到可启动 USB 闪存驱动器

我花了几天时间尝试在我的笔记本电脑上安装 Windows 10 ISO:

我重置了 BIOS 设置,因为它不起作用,但仍然没有任何效果。USB 未出现在 BIOS 菜单中。

有什么建议么?

bios usb boot

5
推荐指数
1
解决办法
10万
查看次数

建立稳定的 Minitel 到 Raspberry Pi 串行端口连接的问题

我正在努力将旧的 Minitel 改造成一个哑终端。但是我遇到了串口连接的问题。正如我发现的那样,从 Minitel 到 Raspberry Pi 的串行连接工作得很好,但反过来就不行了。

我在 Raspberry Pi 控制台上使用双向逻辑电平转换器(3.3V<–>5V) 和名为minicom的程序来测试连接。正如我在原始法语文档中发现的,Minitel 上的 Tx 和 Rx 连接工作在 300/1200/4800 波特率 7 个数据位和 1 个偶校验位,因此我将 Minitel 设置为 4800 波特,并将 minicom 串行端口设置为 4800 7E1 . 串行设备设置为 /dev/ttyS0(因为我有 Raspberry Pi 零 W)。看起来我有 Minitel 2(尽管我在爱尔兰使用了 QWERTY 键盘和英文布局)。

在进行故障排除时,我发现哪些字母(字符)显示正确/不正确。正如我上面所说,从 Minitel (5V) 到 Raspberry Pi (3.3V) 的连接工作正常并且所有字符都正确显示,但是从 Raspberry Pi (3.3V) 到 Minitel (5V) 时只显示一些字母他们应该这样做。有趣的是,如果小写字母正确显示,它的大写字母对应丢失,反之亦然。我只用字母测试了这个。

图片链接中有一个字符表,字母下面的点表示它显示正确。还有一个连接方案和一个工作/不工作的串行端口设置列表(删除线意味着它不工作)和串行端口设置的屏幕截图。

连接方案和字符表

编辑:我必须承认我在阅读时犯了一个错误,h/H 不是豁免,我误读了小写的“h”。另外,我正在添加显示“abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890”的显示图片

显示图像

networking serial-port ascii raspberry-pi minicom

5
推荐指数
1
解决办法
223
查看次数

如何实时获取ffmpeg命令运行状态?

我在 Linux 上使用 ffmpeg 将实时视频录制到 Youtube。当我输入 ffmpeg 命令时,ffmpeg 运行良好。但是,音频设备发生故障时,帧计数从音频设备故障时起根本不会增加。YouTube 上的视频录制已停止。但 ffmpeg 命令仍在运行,没有增加帧数,如下图所示。

图像

我的问题是如何获取在 ffmpeg 命令之外运行的 ffmpeg 的状态?

我的第一个解决方案是读取帧计数器字段,如果计数器未更改,则 ffmpeg 会出现故障。

ffmpeg

5
推荐指数
2
解决办法
2万
查看次数

什么是基于 HTTPS 的 DNS (DoH)?

我最近听说 Chrome、Firefox、Edge 和 Brave 浏览器将测试(并实施?)使用 DNS over HTTPS (DoH) 在他们的浏览器中进行 DNS 解析,而不是传统的 DNS 甚至 DNS over TLS。

什么是 HTTPS 上的 DNS (DoH),我应该了解什么?

browser firefox dns google-chrome

5
推荐指数
1
解决办法
422
查看次数

与 macOS 中的 Windows 10 中的 windows + 数字等效快捷方式吗?

我在 Windows(以及 Linux 中的 Gnome)中最喜欢的键盘快捷键之一是windows key+ number,它会打开任务栏中该位置的程序(如果有多个窗口,则重复按下会在打开的窗口之间进行更改)。

\n\n

在工作中,我\xe2\x80\x99 被分配了一台装有 mac OS Mojave 的 MacBook Pro,到目前为止,除了键盘完全不同并且打字错误之外,我还没有\xe2\x80\x99t 能够找到替代品的是捷径。

\n\n

是否有默认的快捷方式可以做到这一点,或者我只是运气不好,必须使用alt+tab或使用鼠标进行切换?

\n

mac keyboard-shortcuts gnome windows-10 macos-mojave

5
推荐指数
1
解决办法
1176
查看次数