问题标签 [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.
c# - 用管道代替参数
我正在编写从套接字读取 h264 数据的代码,将其传递给 h264dec.exe(openh264 解码器),然后将 YUV 数据传递给 YUV-RGB 解码器。我的问题是 openh264dec 的工作方式类似于“h264dec video.h264 out.yuv”。
而且我真的不知道如何处理代码中的参数以将它们作为流服务。出于培训目的,我尝试过h264dec video.h264 \\.\pipe\h264input
但它不起作用,代码如下:
过程是:
YUV 解码器将 Stream 对象的宽度和高度作为输入。程序挂起WaitForConnection()
并且没有该功能,YUV
解码器在从流中读取时抛出异常。
甚至有可能让它像这样工作吗?用管道代替参数?
github - ndk版本[]不兼容openh264
我安装了https://github.com/BelledonneCommunications/linphone-android,得到了 SDK、NDK 等,现在当我运行 $ make 时出现此错误:
有人可以帮我吗?(我使用 brew 安装了所有我需要的东西,我在 Mac OSX 上)
android - Openh264 抛出 UnsatisfiedLinkError
今天我们遇到了一个奇怪的崩溃。在第一次安装期间,应用程序下载并解压缩 openh264 到应用程序的内部目录,发生在 rxAndroid 的 Schedulers.io() 线程上。这是这种类型的第一次崩溃(> 5k 安装),我发现这个链接(顺便说一句非常有趣的博客)带有匹配的错误消息。我不确定是否真的有人试图替换 openH264 库,或者是否有人试图在 x86 设备上安装 apk 文件。我仍在使用 1.4 的 openH264 并阅读了 1.5 的发行说明。没有任何安全修复的提示。
有关该设备的更多详细信息:
安卓:4.3
制造商:三星
型号:GT-I9300
最后,这是崩溃日志:
我很确定,崩溃发生在这里:
这些是行:
在下载和解压缩完成时调用。
当 lib 正在下载并且网络连接丢失时,会发生错误吗?
欢迎任何帮助或提示,在此先感谢!:)
c++ - openh264 - bEnableFrameSkip=0,比特率无法控制
有很多关于opencv + H.264的问题,但没有一个给出详细的解释。
我在visual studio中使用openh264(openh264-1.4.0-win32msvc.dll)和opencv 3.1(使用启用ffmpeg的cmake自定义构建),我想用H.264压缩将来自网络摄像头的视频保存为mp4格式
VideoWriter write = VideoWriter("D:/movie.mp4", CV_FOURCC('H', '2', '6', '4'), 10.0, cv::Size(192, 144), true);
在使用 openh264 之前,在控制台窗口中我看到一条警告消息“无法加载 openh264 库:openh264-1.4.0-win32msvc.dll 请检查您的环境和/或从此处下载: https ://github.com/cisco/ openh264/releases ”(也没有保存视频)
所以我下载了dll并保存在我的程序文件(exe)的文件夹中,当我运行程序时,我看到不同的错误“[OpenH264] this = 0x0DE312C0,警告:bEnabledFrameSkip = 0,比特率无法控制对于 RC_QUALITY_MODE 和 RC_TIMESTAMP_MODE 不启用跳帧”(现在视频已保存,但大小非常高!比特率约为 1200 Kbps)
对我来说,使用 h264 的唯一目的是减小文件大小。我想我可能必须自己构建 openh264 并进行一些更改才能消除此错误,有人可以指导我如何操作吗?或者告诉我是否有办法通过代码以某种方式降低比特率?
PS:我尝试给出 -1 而不是 CV_FOURCC(),系统中的“已安装编解码器”窗口出现了,即使我从这里安装了各种编解码器包和 h264,我也找不到 h264 或 x264 或 h264vfw
感谢和问候
c++ - OpenH264 性能与编码数据大小 (SEncParamExt)
我正在尝试使用 OpenH264 C++ 库为 960x540 视频每秒获得大约 24 帧。我为 SEncParamExt 尝试了不同的参数,但我无法获得更好的编解码器性能,而不是更小的编码数据。我在我的电脑上得到大约 16-20 fps。
这是我当前的配置。
我为param.iComplexityMode和param.iRCMode尝试了不同的值,我得到了必要的帧速率,但图像质量非常差。我也玩过量化级别,但没有帮助。
我也使用VP8 编解码器。它可以轻松地为同一视频每秒生成 24 帧。编码的数据大小更大(大约每秒 500Kb 与每秒 200Kb 在 OpenH264 的情况下)但对我来说非常方便。
我究竟做错了什么?我应该怎么做才能提高 OpenH264 性能?
android - 无法为 android 构建 Libyuv 库 (PJSIP)
我正在开发一个聊天 android 应用程序。我也想使用通话功能。我已经成功构建了用于 SIP 呼叫 VoIP 的 pjsua2.so 库,但我未能构建用于视频呼叫的 Libyuv.so 库
我按照 thows 中的说明链接 libyuv building libyuv 1776
在第二个链接的步骤 2 中运行 ndk-build 命令后,我没有这个 lib libyuv。所以我也没有 [libyuv_dir]/libs/armeabi
同样对于openH264,在运行此命令后,/configure-android --with-openh264=/home/ubuntu/openh264-1.0.0/android
我得到了:
使用 OpenH264 前缀... /home/ubuntu/PJSIPTOOLS/openh264-1.0.0/openlib/ 检查 OpenH264 可用性... 否
谁能帮帮我(抱歉英语不好)
android - 适用于 Android 的 OpenH264 示例
我正在寻找一个关于如何录制视频并将其编码为 H264 视频的好例子。
查看网络,我发现的所有信息都与编译开源有关,而不是如何从 Android 相机中使用。
encoding - Exp-Golomb 码字的构造和解析方法
我正在使用 OpenH264 编解码器。OpenH264 正在使用 Exp-Golomb 编码来获取标头相关信息。我研究了几个网站并收集了一些关于 Exp-Golomb 编码的信息。OpenH264 使用 4 种 Exp-Golomb 编码方法。他们是:
- Ue [当值仅是非负数时]
- Te [当值只有 1 或 0 时]
- Se [当值既是负数又是正数时]
- 我[当值为值定义标准代码映射时]
我已经学会了如何通过 Method Ue构造或解析。
Exp-Golomb(Ue) = [M-Zeros][1][INFO] 的语法格式。
构造:假设我们有一个 Code_Num = 226。
现在,
M = floor(log2(Code_Num)) = floor(log2(226)) = 7
INFO = Code_Num + 1 - pow(2,M) = 226 + 1 - 128 = 99 = (1100011) in Binary
So,
CodeWord = 0000000 1 1100011 [M-zeros, 1 ignoring bit, INFO]
解析:
假设我们有一个 CodeWord = 000000011100011
Code_Num = pow(2,M) + INFO - 1 = 128 + 99 - 1 = 226
现在我可以计算 Exp-Golomb(Ue)。但我想学习所有与 Se、Te 和 Me 相关的理论。但我找不到其他方法的任何资源。请帮我。
c++ - 如何加速 OpenH264 的解码器
故事
我正在开发一个流畅的 60 FPS 1080p(全高清)视频传输应用程序,它以 x264 编码,通过 LAN 将编码数据发送到接收设备,然后使用 OpenH264 的解码器对其进行解码。我设法让它工作,它工作正常且稳定,但我发现它非常慢(大约 20 FPS 而不是所需的 60 FPS)。
问题
我进行了广泛的测试,发现问题出在 OpenH264 解码器上。
解码器使用了我的 i5-2500 @ 3.9Ghz 的完整内核(总共 25% 的 CPU 使用率),这太高了。尽管解码器是单线程的,但我在 Media Player Classic 上测试了原始数据,其播放(60 FPS)导致 CPU 使用率仅为 0.3%。(将渲染引擎切换到“旧视频渲染”时,CPU 使用率增加到 12.8-14.4%——见评论)
所以我的问题是:我可以做哪些优化来加快解码过程,我做错了什么?我无法想象 OpenH264 就是这么慢。
额外信息
- 编码器可以使用大约 20% 的 CPU 轻松推出 60 FPS 1080p。
- 连接是有线局域网,可以推送> 10MB / s,所以没有问题。
- 发送方和接收方 PC 都有 8GB RAM。
代码
以下是与解码器相关的所有 C++ 代码:
openh264 - 如何选择openh264的错误隐藏方式?
这些错误隐藏枚举对 openh264 意味着什么?有他们的文件吗?