- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当我打电话
frame_size = x264_encoder_encode(encoder, &nals, &i_nals, &pic_in, &pic_out);
然后将每个 NAL 写入如下文件:
if (frame_size >= 0)
{
int i;
int j;
for (i = 0; i < i_nals; i++)
{
printf("******************* NAL %d (%d bytes) *******************\n", i, nals[i].i_payload);
fwrite(&(nals[i].p_payload[0]), 1, nals[i].i_payload, fid);
}
}
然后我明白了
我的问题是:
1)文件开头有可读参数是否正常?
2) 我如何配置 X264 编码器,以便编码器返回我可以通过 UDP 发送的帧,而不会使数据包碎片化(大小必须低于 1390 或附近的某个位置)。
3) 我通过 x264.exe 传递这些选项:
"--threads 1 --profile baseline --level 3.2 --preset ultrafast --bframes 0 --force-cfr --no-mbtree --sync-lookahead 0 --rc-lookahead 0 --keyint 1000 --intra-refresh"
如何将这些映射到 X264 参数结构中的设置? (x264_param_t)
4) 我被告知 x264 静态库不支持编码器的位图输入,我必须使用 libswscale 将 24 位 RGB 输入位图转换为 YUV2。据推测,编码器只将 YUV2 作为输入?这是真的?如果是这样,我如何为 x264 静态库构建 libswscale?
最佳答案
1) 是的。 x264 自动包含。它是一个 SEI 切片,如果你愿意,你可以扔掉它。
2) 设置 i_slice_max_size = 1390
3) 查看 x264.h 中的 x264_param_t。这些设置是相当不言自明的。至于设置配置文件和预设调用 int x264_param_apply_profile( x264_param_t *, const char *profile )
和 int x264_param_default_preset( x264_param_t *, const char *preset, const char *tune )
4) 是的,这是真的,我说那话的时候想撒谎。在线查看/在堆栈溢出上有一百万个关于编译 ffmpeg 的资源。事实上,如果您编译了带有 avcodec 支持的 x264,那么您的系统上已经有了它。
5) 是的!你应该成为一个优秀的 stack overflow 公民,并投票并接受那些捐赠空闲时间和知识(需要数年时间才能获得)来帮助你的人的回答。
关于c - X264 : How to access NAL units from encoder?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153760/
我一直在使用 PyAV 和 aiortc 使用 webrtc 设置视频流。 我想重新打包数据包并发送它们而不进行转码。我遇到的问题是 aiortc 是 av_read_frame 调用不会生成 NAL
有人曾经使用过一个好的开源 Java 库来允许 NAL > H264 转换吗? 我见过很多库,但其中大多数不完整或很难使用(没有文档等)。 我想要的是传递 NAL 有效负载并获取实际的 H.264 原
GstH264NalParser *parser = NULL; GstH264NalUnit nal_unit = { 0 }; parser = gst_h264_nal_parser_new()
我需要对 H264 NAL 单元分隔符前缀( 00 00 00 01 和 00 00 01 )进行一些说明,我正在使用 Intel Media SDK 生成 H264 并将其打包到 RTP 中。问题是
我需要将 Windows PC 的屏幕流式传输到 Android。我打算使用 FFmpeg 捕获屏幕并使用 H.264 编解码器进行编码,通过 RTP 发送流,最后使用 MediaCodec 解码视频
从我过去所见,StackOverflow 似乎喜欢编程挑战,例如 fast char to string exercise problem得到了几十个回应。这是一个优化挑战:采用一个非常简单的函数,看
我在 H.264 规范中找不到任何线索,无论其配置文件和级别如何,任何人都可以给出一个清晰简单的最大尺寸? 我想解析H.264码流,将一个完整的NAL unit buffer复制到一个固定大小的buf
我在 H.264 规范中找不到任何线索,无论其配置文件和级别如何,任何人都可以给出一个清晰简单的最大尺寸? 我想解析H.264码流,将一个完整的NAL unit buffer复制到一个固定大小的buf
我有 h265 NAL 数据包,需要使用它们来确定帧速率。如果我使用 FFMPEG,我可以做到这一点。 但对于我的应用程序,我不能使用 ffmpeg,我需要通过分析比特流(通过 C/C++)来确定帧速
我正在使用 x264 压缩来自具有以下设置的网络摄像头的视频流: x264_param_default_preset(¶m, "veryfast", "zerolatency"); param
是否可以提取每个 NAL 单元比特流? (实际比特流) 例如像这样提取它们: (4字节长度+直到单元末尾的剩余字节)并对MP4视频中的所有单元执行此操作?实际上,我想检查 MP4 视频(使用 H.26
在我设备上的一个特殊界面上,我可以看到 NAL 单元经过。两个示例文件如下所示: P-Frames: 00 00 00 01 41 FC 0F 90 86 DE F9 E1 4D 37 AE D3 2
背景: 我当前的视频文件放在基于 Linux 的系统中,该系统将内容 (RTP) 流式传输给其他用户。更改后我正在拍摄并将内容发送到服务器并确保编码正确我偶然发现问题。 我尝试过使用 ffmpeg ,
我是 MPEG-4 的新手,正在逐步学习它。我使用 FFMPEG 作为引用。 我知道所有 mpeg-4 都被编码为 NAL 单元,并且 FFMPEG av_read_frame() 函数返回一个 NA
我可以使用 FFmpeg 将虚拟帧编码为 H264 比特流。我还想做的是从比特流中提取单个 NAL。 从周围的大量狩猎看来,使用 AVParser 和 av_parser_parse2 是这样做的方法
大家好,我一直在试图找出如何从 SPS 最终单位计算宽度和高度。我有具有这些参数的 H264 视频 h264 (High), yuvj420p(pc), 1280x720 [SAR 1:1 DAR 1
我在两台 Android 设备上检查了 MediaExtractor 的输出,它似乎在它们上产生了略有不同的样本,假设相同视频文件。 对于一个设备,非 VCL NAL 单元连接到下一个 VCL 单元以
我正在研究 h264 视频编解码器。我想知道:H264中的单个NAL单元是否相当于一个视频帧? 最佳答案 不,NAL 单元的序列可以解码成视频帧,但它们并不等同。 http://en.wikipedi
我正在使用 x264 编码器 api,对于每张编码图片,我都会得到一些最终单元。有什么方法可以检查 nals 在我的 VS2010 调试器中是否有效。目前我可以看到以下信息:: i_ref_idc
当我打电话 frame_size = x264_encoder_encode(encoder, &nals, &i_nals, &pic_in, &pic_out); 然后将每个 NAL 写入如下文件
我是一名优秀的程序员,十分优秀!