问题标签 [openh264]

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 投票
1 回答
909 浏览

ffmpeg - 基于I帧生成P帧

假设我有 5 张非常相似的图像。我想根据第一张图像压缩图像 2、3、4 和 5,有点类似于从 I 帧生成 P 帧的方式。

  • 一般来说,这样做的最佳方式/工具是什么?
  • 例如,使用 FFMPEG,是否可以生成 P 帧并将它们存储在单独的文件中?

编辑: 虽然相似,但我不是在寻找简单地在两个图像之间生成差异。我的目标是以某种方式使用第一张图像中的信息来使连续图像更小。如果我只是做一个差异,差异本身的大小大致相同(减少了大约 10%),这并不像我预期的那么大。如果我生成包含这 5 帧的 mp4 视频,则视频大小远小于将 5 帧放入文件中,这可能与基于 I 帧的帧预测有关。有没有办法一一生成这些预测帧并单独存储它们?

0 投票
1 回答
172 浏览

openh264 - 编码器的 InitilizeExt() 对于 openH264 失败

我正在我的解决方案中实现 openH264。我在调用 Initialize() [用于具有基本参数的编码器] 和 InitializeExt() [用于具有扩展参数的编码器] 时遇到问题。它总是返回 1(cmInitParaError)。我验证了链接https://github.com/cisco/openh264/wiki/UsageExampleForEncoder中提供的示例。但它仍然失败。

有什么具体的东西需要设置吗?

示例代码如下;

0 投票
0 回答
1805 浏览

python - 使用 kivy 播放实时 h264 编码视频 RTSP 流

我有一个在 winapi 内核事件循环中使用的 c++ 程序,live555该程序将图像从相机传递到libopenh264然后用作 RTSP 流,使用ffmpeg. 可以使用VLC. 事件循环还记录到 avi 容器。

我想kivy使用下面的简单 kvlang 设置远程查看客户端:

窗口不显示Video对象,日志输出有以下错误

当我将流编码更改为 MJPEG 时,视频播放器会正确显示实时视频。此外,当我更改source为记录的 h264 编码 avi 文件的文件路径时,它可以正常播放。是否有可以提醒VideoGstplayer预期编码的配置?或者,我的流设置是否存在提供的 kivy 播放器无法正确读取的问题?也许我错过了一个 gstreamer dll,但该消息并没有提醒我诸如此类的任何事情。

这一切都是使用安装 python 依赖项的基本安装说明在 Windows 上执行的。kivy正在使用的版本是1.9.1. 我是新来的基维。

编辑:只是为了带来更多信息。即使image编解码器为MJPEG. 因此,显示问题似乎出在 gstremer 或 gstreamer 的实现中。

0 投票
0 回答
1442 浏览

ffmpeg - 如何配置 ffmpeg 和 openh264 以便可以在 Windows Media Player 12 中打开视频文件

我已经使用 ffmpeg 和 x264 库成功创建了 h264/mp​​4 电影文件。

现在我想将 h264 库从 x264 更改为 openH264。我可以用 openH264 替换 x264 库,重新编译 ffmpeg 并制作电影文件,而无需更改制作电影的源代码。生成的电影在 Mac 上的 Quicktime 中可以正常打开,但在 Windows 上,Windows Media Player 12 无法播放。

有关 Windows Media Player 对 h264 的支持的文档尚不清楚。 Windows Media Player 支持的文件类型在表格中表明 Windows Media Player 12 支持 mp4,但下面的文字说明:

Windows Media Player 不支持播放 .mp4 文件格式。

据我观察,Windows Media Player 12能够播放h264 /mp​​4 文件,但只能在使用 x264 创建时。

有谁知道我需要如何调整编解码器/上下文的配置,以便电影在 Windows Media Player 中播放?Windows Media Player 是否仅支持某些 h264 配置文件?

我注意到警告:

[libopenh264 @ 0x...] [OpenH264] this = 0x..., 警告:bEnableFrameSkip = 0, RC_QUALITY_MODE、RC_BITRATE_MODE 和 RC_TIMESTAMP_MODE 的比特率无法控制而不启用跳帧

使用配置:

我可以摆脱这个警告,但电影仍然无法播放。是否需要设置其他选项才能在 Windows Media Player 中播放电影?

谢谢您的帮助

在 Windows Media Player 中可以正常播放的文件的 ffprobe 输出:

在 Windows Media Player 中不播放的文件的 ffprobe 输出:

0 投票
1 回答
301 浏览

android - 用于arm android的Openh264无法构建

我正在尝试为 android 的 arm(和 arm64)构建 openh264 但失败了!!它对其他平台(x86/x64/mip/mip64)是成功的。操作系统:Ubuntu 14.04-i386 (hyper-v) Nasm:是 2.10.9

错误信息:

ikaros@ikaros-Virtual-Machine:~/openh264/v1.6/openh264$ make os=android NDKROOT=~/ndk/android-ndk-r14b/TARGET=android-12 ARCH=arm64 APP_ABI=armeabi NDKLEVEL=21 g++ - O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec /common/src/common_tables.o 编解码器/common/src/common_tables.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc - I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/copy_mb.o codec/common/src/copy_mb.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-别名 -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/cpu.o codec/common/源/CPU。cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/crt_util_safe_x.o codec/common/src/crt_util_safe_x.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api /svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/deblocking_common.o codec/common/src/deblocking_common.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno -strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/expand_pic.o codec /common/src/expand_pic.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I。/codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/intra_pred_common.o codec/common/src/intra_pred_common.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/ mc.o codec/common/src/mc.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/ common/inc -Icodec/common/inc -c -o codec/common/src/memory_align.o codec/common/src/memory_align.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/sad_common.o codec/common/src/sad_common。cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/utils.o codec/common/src/utils.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api /svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/welsCodecTrace.o codec/common/src/welsCodecTrace.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno -strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsTaskThread.o codec /common/src/WelsTaskThread.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsThread.o codec/common/src/WelsThread.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing - fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsThreadLib.o codec/common/src/ WelsThreadLib.cpp g++ -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsThreadPool.o codec/common/src/WelsThreadPool.cpp cc -O3 -DNDEBUG -DHAVE_NEON_AARCH64 -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec /common/arm64/ -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/arm64/copy_mb_aarch64_neon。o codec/common/arm64/copy_mb_aarch64_neon.S codec/common/arm64/copy_mb_aarch64_neon.S:汇编器消息:codec/common/arm64/copy_mb_aarch64_neon.S:110:错误:没有这样的指令:sxtw x1,w1' codec/common/arm64/copy_mb_aarch64_neon.S:111: Error: no such instruction:sxtw x3,w3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:112: 错误: 没有这样的指令: ld1 {v0.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:112: Error: no such instruction:ld1 {v1.8b},[x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:112: 错误:没有这样的指令:ld1 {v2.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:112: Error: no such instruction:ld1 {v3.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:114:错误:没有这样的指令:st1 {v0.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:114: Error: no such instruction:st1 {v1.8b},[x0],x1' codec/ common/arm64/copy_mb_aarch64_neon.S:114:错误:没有这样的指令:st1 {v2.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:114: Error: no such instruction:st1 {v3.8b},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:116:错误:没有这样的指令:ld1 {v4.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:116: Error: no such instruction:ld1 {v5 .8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:116:错误:没有这样的指令:ld1 {v6.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:116: Error: no such instruction:ld1 {v7.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S :118:错误:没有这样的指令:st1 {v4.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:118: Error: no such instruction:st1 {v5.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:118:错误:没有这样的指令:st1 {v6.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:118: Error: no such instruction:st1 {v7.8b},[x0],x1' codec/common/arm64/ copy_mb_aarch64_neon.S:124: 错误: 没有这样的指令: sxtw x1,w1' codec/common/arm64/copy_mb_aarch64_neon.S:125: Error: no such instruction:sxtw x3,w3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:126: 错误: 没有这样的指令: ld1 {v0.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:126: Error: no such instruction:ld1 {v1.2d},[x2],x3' 编解码器/ common/arm64/copy_mb_aarch64_neon.S:126:错误:没有这样的指令:ld1 {v2.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:126: Error: no such instruction:ld1 {v3.2d},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:128:错误:没有这样的指令:st1 {v0.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:128: Error: no such instruction:st1 {v1 .2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:128:错误:没有这样的指令:st1 {v2.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:128: Error: no such instruction:st1 {v3.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S :130:错误:没有这样的指令:ld1 {v16.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:130: Error: no such instruction:ld1 {v17.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:130:错误:没有这样的指令:ld1 {v18.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:130: Error: no such instruction:ld1 {v19.2d},[x2],x3' codec/common/arm64/ copy_mb_aarch64_neon.S:132:错误:没有这样的指令:st1 {v16.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:132: Error: no such instruction:st1 {v17.2d},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:132:错误:没有这样的指令:st1 {v18.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:132: Error: no such instruction:st1 {v19.2d}, [x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:134:错误:没有这样的指令:ld1 {v0.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:134: Error: no such instruction:ld1 {v1.2d},[x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:134:错误:没有这样的指令:ld1 {v2.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:134: Error: no such instruction:ld1 {v3.2d},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:136:错误:没有这样的指令:st1 {v0.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:136: Error: no such instruction:st1 {v1.2d},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:136:错误:没有这样的指令:st1 {v2.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:136: Error: no such instruction:st1 {v3.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:138:错误:没有这样的指令:ld1 {v16.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:138: Error: no such instruction:ld1 {v17.2d},[x2],x3' codec/common/arm64/ copy_mb_aarch64_neon.S:138:错误:没有这样的指令:ld1 {v18.2d},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:138: Error: no such instruction:ld1 {v19.2d},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:140:错误:没有这样的指令:st1 {v16.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:140: Error: no such instruction:st1 {v17.2d}, [x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:140: 错误: 没有这样的指令: st1 {v18.2d},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:140: Error: no such instruction:st1 {v19.2d},[x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:146: 错误: 没有这样的指令: sxtw x1,w1' codec/common/arm64/copy_mb_aarch64_neon.S:147: Error: no such instruction:sxtw x3,w3' codec/common/arm64/copy_mb_aarch64_neon.S:148: 错误: 没有这样的指令: ld1 {v0.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:148: Error: no such instruction:ld1 {v1.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S :148:错误:没有这样的指令:ld1 {v2.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:148: Error: no such instruction:ld1 {v3.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:150:错误:没有这样的指令:st1 {v0.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:150: Error: no such instruction:st1 {v1.16b},[x0],x1' codec/common/arm64/ copy_mb_aarch64_neon.S:150:错误:没有这样的指令:st1 {v2.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:150: Error: no such instruction:st1 {v3.16b},[x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:152:错误:没有这样的指令:ld1 {v16.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:152: Error: no such instruction:ld1 {v17.16b}, [x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:152: 错误: 没有这样的指令: ld1 {v18.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:152: Error: no such instruction:ld1 {v19.16b},[x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:154: 错误:没有这样的指令:st1 {v16.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:154: Error: no such instruction:st1 {v17.16b},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:154:错误:没有这样的指令:st1 {v18.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:154: Error: no such instruction:st1 {v19.16b},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:156:错误:没有这样的指令:ld1 {v0.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:156: Error: no such instruction:ld1 {v1.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:156:错误:没有这样的指令:ld1 {v2.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:156: Error: no such instruction:ld1 {v3.16b},[x2],x3' codec/common/arm64/ copy_mb_aarch64_neon.S:158:错误:没有这样的指令:st1 {v0.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:158: Error: no such instruction:st1 {v1.16b},[x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:158:错误:没有这样的指令:st1 {v2.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:158: Error: no such instruction:st1 {v3.16b}, [x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:160:错误:没有这样的指令:ld1 {v16.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:160: Error: no such instruction:ld1 {v17.16b},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:160:错误:没有这样的指令:ld1 {v18.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:160: Error: no such instruction:ld1 {v19.16b},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:162:错误:没有这样的指令:st1 {v16.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:162: Error: no such instruction:st1 {v17.16b},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:162:错误:没有这样的指令:st1 {v18.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:162: Error: no such instruction:st1 {v19.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:168:错误:没有这样的指令:sxtw x1,w1' codec/common/arm64/copy_mb_aarch64_neon.S:169: Error: no such instruction:sxtw x3,w3' codec/common/arm64/copy_mb_aarch64_neon.S:170:错误:没有这样的指令:ld1 {v0.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:170: Error: no such instruction:ld1 {v1.16b},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:170:错误:没有这样的指令:ld1 {v2.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:170: Error: no such instruction:ld1 {v3.16b},[x2],x3'编解码器/ common/arm64/copy_mb_aarch64_neon.S:172:错误:没有这样的指令:st1 {v0.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:172: Error: no such instruction:st1 {v1.16b},[x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:172:错误:没有这样的指令:st1 {v2.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:172: Error: no such instruction:st1 {v3 .16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:174:错误:没有这样的指令:ld1 {v16.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:174: Error: no such instruction:ld1 {v17.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S :174:错误:没有这样的指令:ld1 {v18.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:174: Error: no such instruction:ld1 {v19.16b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:176:错误:没有这样的指令:st1 {v16.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:176: Error: no such instruction:st1 {v17.16b},[x0],x1' codec/common/arm64/ copy_mb_aarch64_neon.S:176:错误:没有这样的指令:st1 {v18.16b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:176: Error: no such instruction:st1 {v19.16b},[x0],x1'编解码器/common/arm64/copy_mb_aarch64_neon.S:182:错误:没有这样的指令:sxtw x1,w1' codec/common/arm64/copy_mb_aarch64_neon.S:183: Error: no such instruction:sxtw x3,w3'编解码器/ common/arm64/copy_mb_aarch64_neon.S:184:错误:没有这样的指令:ld1 {v0.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:184: Error: no such instruction:ld1 {v1.8b},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:184:错误:没有这样的指令:ld1 {v2.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:184: Error: no such instruction:ld1 {v3 .8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:186:错误:没有这样的指令:st1 {v0.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:186: Error: no such instruction:st1 {v1.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S :186:错误:没有这样的指令:st1 {v2.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:186: Error: no such instruction:st1 {v3.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:188:错误:没有这样的指令:ld1 {v4.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:188: Error: no such instruction:ld1 {v5.8b},[x2],x3' codec/common/arm64/ copy_mb_aarch64_neon.S:188:错误:没有这样的指令:ld1 {v6.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:188: Error: no such instruction:ld1 {v7.8b},[x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:190:错误:没有这样的指令:st1 {v4.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:190: Error: no such instruction:st1 {v5.8b}, [x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:190: 错误: 没有这样的指令: st1 {v6.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:190: Error: no such instruction:st1 {v7.8b},[x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:192: 错误:没有这样的指令:ld1 {v0.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:192: Error: no such instruction:ld1 {v1.8b},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:192:错误:没有这样的指令:ld1 {v2.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:192: Error: no such instruction:ld1 {v3.8b},[x2],x3'编解码器/common/arm64/copy_mb_aarch64_neon.S:194:错误:没有这样的指令:st1 {v0.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:194: Error: no such instruction:st1 {v1.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:194:错误:没有这样的指令:st1 {v2.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:194: Error: no such instruction:st1 {v3.8b},[x0],x1' codec/common/arm64/ copy_mb_aarch64_neon.S:196:错误:没有这样的指令:ld1 {v4.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:196: Error: no such instruction:ld1 {v5.8b},[x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:196:错误:没有这样的指令:ld1 {v6.8b},[x2],x3' codec/common/arm64/copy_mb_aarch64_neon.S:196: Error: no such instruction:ld1 {v7.8b}, [x2],x3' 编解码器/common/arm64/copy_mb_aarch64_neon.S:198: 错误: 没有这样的指令: st1 {v4.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:198: Error: no such instruction:st1 {v5.8b},[x0],x1' 编解码器/common/arm64/copy_mb_aarch64_neon.S:198: 错误: 没有这样的指令: st1 {v6.8b},[x0],x1' codec/common/arm64/copy_mb_aarch64_neon.S:198: Error: no such instruction:st1 {v7.8b},[x0],x1' make: *** [codec/common/arm64/copy_mb_aarch64_neon.o] 错误 1

这是构建手臂结果:

ikaros@ikaros-Virtual-Machine:~/openh264/v1.6/openh264$ make os=android NDKROOT=~/ndk/android-ndk-r14b/TARGET=android-12 ARCH=arm NDKLEVEL=21 g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/ src/common_tables.o 编解码器/common/src/common_tables.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./ codec/common/inc -Icodec/common/inc -c -o codec/common/src/copy_mb.o codec/common/src/copy_mb.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/cpu.o codec/common/src/cpu .cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/crt_util_safe_x.o codec/common/src/crt_util_safe_x.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api /svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/deblocking_common.o codec/common/src/deblocking_common.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno -strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/expand_pic.o codec /common/src/expand_pic.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/intra_pred_common.o codec/common/src/intra_pred_common.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing - fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/mc.o codec/common/src/ mc.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/memory_align.o codec/common/src/memory_align.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec /api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/sad_common.o codec/common/src/sad_common。cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/utils.o codec/common/src/utils.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api /svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/welsCodecTrace.o codec/common/src/welsCodecTrace.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno -strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsTaskThread.o codec /common/src/WelsTaskThread.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsThread.o codec/common/src/WelsThread.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing - fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsThreadLib.o codec/common/src/ WelsThreadLib.cpp g++ -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/src/WelsThreadPool.o codec/common/src/WelsThreadPool.cpp cc -O3 -DNDEBUG -DHAVE_NEON -Wall -fno-strict-aliasing -fPIC -MMD -MP -DGENERATED_VERSION_HEADER -I./codec /common/arm/ -march=armv7-a -mfpu=neon -I./codec/api/svc -I./codec/common/inc -Icodec/common/inc -c -o codec/common/arm/copy_mb_neon .o 编解码器/common/arm/copy_mb_neon。S cc: 错误: 无法识别的命令行选项'-mfpu=neon' make: *** [codec/common/arm/copy_mb_neon.o] 错误 1

请帮帮我!!

0 投票
1 回答
251 浏览

c++ - openh264 重复帧

我在 c++ 程序中使用 openh264 库将一组图像转换为 h264 编码的 mp4 文件。这些图像表示会话记录期间对屏幕的更新。

假设一组包含 2 个图像,一个是桌面的初始屏幕抓图,另一个是 30 秒后时钟变化时的另一个图像。

有没有办法让流仅使用这 2 张图像来表示 30 秒长的视频?

现在,我通过对第一帧进行多次编码以填补空白来强制执行此操作。它有一种更有效和/或更快的方法来做到这一点。

0 投票
1 回答
1427 浏览

video - WebRTC:编码器实现中的 RTPFragmentationHeader 是什么?

我已经修改h264_encoder_impl为使用基于 nvidia 网格的硬件编码器。这是通过用 Nvidia API 调用替换 OpenH264 特定调用来完成的。编码流可以成功写入文件,但是写入_buffer_sizeofencoded_image_还不够,RTPFragmentationHeader还需要填充。

当前基于 Openh264 的实现填充frag_headerRTPFragmentize()VP8 填充它不同。我可以看到带有 NAL untis 和层的东西,它们也可以计算encoded_image->_length,但我不知道如何计算。

我在任何地方都找不到任何文档。VP8 和 OpenH264 实现就是我所拥有的。

那么是什么RTPFragmentationHeader?它有什么作用?是什么encoded_image->_length?使用自定义H264编码器时如何正确填充?我可以找到起始码,但接下来呢?如何填写其所有成员?

0 投票
2 回答
2119 浏览

android - 无效或不受支持的命令“更新项目 -t -p”错误构建 OpenH264

我正在尝试将OpenH264编译为Android arm的静态库。OpenH264我在的父文件夹中执行了以下命令。

我在构建结束时收到以下错误消息。

但是,我得到以下库作为我需要的输出,

输出看起来与我为 iOS 构建 OpenH264 得到的相同。似乎构建成功但不确定为什么会出现与 android 相关的错误?

问题:
构建是否正常?我该怎么做才能摆脱与 android 相关的错误?

0 投票
1 回答
366 浏览

buffer - WelsInitEncoderExt 的 ParamValidationExt 错误在设置 OpenH264 编码器时失败

场景:
我在我的应用程序中使用OpenH264编码为video_file.mp4.

环境:
平台:MacOs Sierra
编译器:Clang++

代码:
以下是我拥有的代码的症结:

上面的代码是我从 OpenH264 的官方使用示例中提取的,其中BufferedData.h是我从OpenH264 utils中重用的类

问题:
但是,我收到以下错误:

上面不会使应用程序崩溃,但它会通过空白运行而没有video_file.mp4使用我试图写入的虚拟数据创建。

问题:
我申请的设置配置似乎有问题pEnxParamExt,进入encoder_->InitializeExt.
我在设置编码器时做错了什么?

注意:
我不想连接任何相机设备。我只是想用.mp4一些虚拟图像数据创建一个视频。

0 投票
2 回答
668 浏览

delphi - Delphi OpenH264 解码

我在编码和解码过程中使用的是cisco OpenH264编解码器,编码阶段工作得很好,我可以正确读取我编码的H.264文件,问题在于我的解码过程,主要是从I420到ARGB的转换,请可以任何人都可以帮助解决这个问题。

这是我的解码函数(来自 OpenH264 包装 DLL):

这是我的 Delphi 实现:

非常感谢。