问题标签 [raw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
270 浏览

video - 使用ffmpeg从原始png图片16位深度的mkv视频

我需要接收带有此输出的视频

流 #0:1(eng):视频:rawvideo (b16g / 0x67363162)、gray16be、640x576、SAR 1:1 DAR 10:9、30 fps、30 tbr、1000k tbn、1000k tbc(默认)

私人数据:

尺寸 40(FourCC: 0x62313667 "b16g")

我正在尝试使用:

但我收到了带有这些参数的视频:

流 #0:0:视频:rawvideo、rgb555le、640x576、SAR 1:1 DAR 10:9、30 fps、30 tbr、1k tbn、1k tbc(默认)

并使用此私有编解码器数据:

大小 40(FourCC: 0x00000000 "????": 未压缩)

我将不胜感激任何建议或猜测,谢谢!

*更新 - 完整日志:

ffmpeg -framerate 30 -i depth\depth%04d.png -c:v rawvideo -vtag b16g -pix_fmt gray16be -allow_raw_vfw 1 out_video.mkv ffmpeg 版本 n4.3.1-221-gd08bcbffff 版权所有 (c) 2000-2021 FFmpeg 开发者
使用 gcc 9.3-win32 (GCC) 20200320 配置构建:--prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os =mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-zlib --enable-libxml2 --enable-libfreetype --enable -libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-opencl --enable-libvmaf --disable-vulkan --enable-libvorbis --enable-amf --enable-libaom --enable -avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus - -enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --启用通道--enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libtwolame --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp libavutil 56. 51.100 / 56. 51.100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / image 52.7.来自'depth\depth%04d.png':持续时间:00:00:25.90,开始:0.000000,比特率:N/A不适用不适用100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 输入 #0,image2,来自 'depth\depth%04d.png':持续时间:00:00:25.90,开始:0.000000,比特率:N/A100 libavcodec 58. 91.100 / 58. 91.100 libavformat 58. 45.100 / 58. 45.100 libavdevice 58. 10.100 / 58. 10.100 libavfilter 7. 85.100 / 7. 85.100 libswscale 5. 7.100 / 5. 7.100 libswresample 3. 7.100 / 3. 7.100 libpostproc 55. 7.100 / 55. 7.100 输入 #0,image2,来自 'depth\depth%04d.png':持续时间:00:00:25.90,开始:0.000000,比特率:N/A

流 #0:0:视频:png、gray16be(pc)、640x576 [SAR 1:1 DAR 10:9]、30 fps、30 tbr、30 tbn、30 tbc

流映射:Stream #0:0 -> #0:0 (png (native) -> rawvideo (native)) 按 [q] 停止,[?] 寻求帮助 [matroska @ 000001f25bb71dc0] 编解码器 rawvideo 不受此支持格式输出 #0,matroska,到 'out_video.mkv':
元数据:编码器:Lavf58.45.100 流 #0:0:视频:rawvideo,gray16be,640x576 [SAR 1:1 DAR 10:9],q=2-31 , 176947 kb/s, 30 fps, 1k tbn, 30 tbc 元数据:编码器:Lavc58.91.100 rawvideo frame=777 fps=602 q=-0.0 Lsize= 559475kB time=00:00:25.86 bitrate=177177.1kbits/s speed= 20x 视频:559440kB 音频:0kB 字幕:0kB 其他流:0kB 全局标题:0kB 复用开销:0.006204%

0 投票
1 回答
67 浏览

python - 当我将 np 数组写入二进制文件时出现问题,新文件只有原始文件的一半

我正在尝试删除原始文件的前 24 行,因此我打开了原始原始文件(我们称之为 raw1.raw)并将其转换为 nparray,然后我初始化了一个新数组并删除了 top24 行,但是在编写了新文件之后数组到新的二进制文件(raw2.raw),我发现raw2只有15.2mb,而原始文件raw1.raw就像30.6mb,我的代码:

我在写入二进制文件时尝试使用 im.astype('uint16'),但如果我使用 uint16,值会错误。

0 投票
2 回答
48 浏览

yii - 如何使用 Yii2 框架隐藏 view.php 文件中的原始文件

我的 view.php 文件中有这个原始文件:

如果值不包含任何字符,我想要隐藏整个字段,所以 if is = "" OR 为 NULL。所以我想隐藏整个字段“Descrizione”。我必须在此代码中添加哪个选项?非常感谢

0 投票
1 回答
1406 浏览

video - 图片大小 0x0 无效:尝试使用 ffmpeg 将 4k 原始视频下采样到 1080

但我得到了错误:

0 投票
1 回答
139 浏览

c++ - GStreamer 通过 rtp 发送 16 个原始视频

我有一个来自 LWIR(热像仪)的 16 位灰度视频流,我想通过 RTP 转发流而不进行任何压缩。

gstreamer 格式为:video/x-raw,format=GRAY16_LE,width=640,height=520,framerate=9/1

但我找不到任何插件来通过 RTP 传输数据。 https://gstreamer.freedesktop.org/documentation/rtp/index.html?gi-language=c

你有想法吗?

谢谢,马丁

0 投票
0 回答
50 浏览

windows - 如何写入 SD 卡的扇区 0 (MBR)?(视窗)

我想将数据写入 SD 卡的扇区 0 (MBR),而不是 SD 卡中的分区。为此,我尝试打开 SD 卡的物理驱动器,这很成功。但是当我调用 WriteFile() 写入 SD 卡时,它返回错误 5 (ERROR_ACCESS_DENIED)。

以下是我使用的示例代码。有人可以帮我解决我在这段代码中遗漏的内容吗?(我也尝试在管理员模式下执行此代码,但徒劳无功。)

0 投票
0 回答
56 浏览

android - 我在 raw 文件夹中有一个 pdf 文件。如何将此pdf文件显示到webview中?

我在 R.raw 文件夹中有一个名为“policy”的文件。我想在 webview 中显示这个文件,以便用户可以在其中查看这个文件。

0 投票
0 回答
215 浏览

python - 在 Python 中使用 SimpleITK 读取原始数据文件的问题

我有两个与二进制 3d 图像关联的数据文件 image.raw 和 image.mhd。我正在尝试用 python 代码阅读它们。我做了很多不同的尝试,但我一直收到编译器错误

无法确定“image.mhd”的 ImageIO 阅读器。

我当前的代码如下所示:

0 投票
1 回答
158 浏览

karate - 空手道:如何发送原始请求和禁用嵌入式表达式

如何发送用括号括起来的原始请求并防止空手道将其解析为“嵌入式表达式”

示例 1:正确地将字符串'(1+2)'作为有效负载发送(如预期的那样)。

示例2:与多行相同的字符串被检测为“嵌入表达式”,并由空手道转换为类型编号3(在日志和接收API中可以清楚地看到):

为什么会这样,无论里面有什么,我如何发送真正的原始字符串?换句话说:如何禁用嵌入式表达式?

我的背景是我需要发送多行原始字符串作为有效负载。一些子字符串用括号括起来,这会导致接收 API 出错(为了简化我的问题,我将示例减少到 1 行)。

0 投票
1 回答
410 浏览

timestamp - Gstreamer 从 USB 源播放原始 h.264 流(时间戳问题)

我正在处理通过 USB 输出原始 h.264 视频流的实时视频源(无人机无线视频接收器)。我的目标是将它集成到具有 GStreamer 管道的 Android 中的 QGroundStation 中。

我已将接收到的 USB 数据的一部分转储到一个文件中,使用以下命令可以使用 vlc 完美播放该文件:

但是,如果我使用这个 GStreamer 管道播放它,播放速度太高(如 x10)

我正在使用 appsrc 将 USB 数据推送到 QGroundControl 管道中。视频播放,但是丢了很多帧,gstreamer 抱怨丢包,因为帧太晚了。

在仔细检查我的转储后,我意识到流缺少 pts 和 dts 信息(这在基线 h.264 流中似乎很常见)

但显然,持续时间信息在那里。

USB 端点读取 512 字节的块(由于 USB 高速最大。批量端点的有效负载大小),并且一些传输更小(400+ 字节长)。我无法检测 NAL 的开始/结束,因为它是一个不透明的连续字节流。(视频/x-h264,流格式=(字符串)字节流,对齐=无)

因此,我构建了一个 appsrc 来将视频流推送到管道,并尝试像这样盲目地为缓冲区添加时间戳:

...但仍然没有运气...

通过使用以下管道将 h.264 流编码为 RTP 有效负载,然后使用指定目标帧速率的 caps 过滤器对其进行解码,我取得了有限的成功:

我可以将它构建到 C++ 中的 QGroundControl 中,但我认为这不是正确的方法,我不应该对目标帧速率做出任何假设,因为在这种情况下它是 30 fps,但它可能会动态变化。

所以,我的问题是:

  • 什么是让视频以正确的速度播放而没有任何丢帧的正确方法?
  • 要求 GStreamer 使用标准管道根据数据包的持续时间信息生成 PTS/DTS(没有 B 帧,因此 PTS 应该等于 DTS)是否合理或可能?

更新::

  • 我尝试了一种已知的解决方法,用于从此处描述的 DTS + 持续时间插入 PTS,但在我的情况下,PTS 和 DTS 在流中均不可用,因此没有任何区别。
  • 此特定视频转储的正确帧速率应为 29.97 fps (NTSC)。我在视频图像中有一个运行计数器来验证它。
  • 正如您在我的 ffprobe 输出中看到的,duration_time 信息显示为 0.04 s,对应于 25 fps,这让我感到困惑。
  • 令人惊讶的是,VLC 以正确的速度播放视频,并正确猜测帧速率为 29.97 fps(根据您按下 Ctrl+J 的视频编解码器信息窗口)
  • 我注意到 rtph264pay 会生成丢失的时间戳,但猜测的帧速率是 25 fps,正如数据包的 duration_time 字段所暗示的那样