问题标签 [libx264]
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++ - 如何使用 FFmpeg C API 编码 H.264 视频,然后使用媒体播放器打开输出?
我正在尝试使用 FFMPEG C API 对 H.264 视频进行编码。我已经成功编译并执行了FFMPEG提供的解码/编码示例。
我面临的问题是示例创建的 .mpg 文件(使用 AV_CODEC_ID_MPEG1VIDEO 编码)有效。Windows 创建一个缩略图和一切。另一方面,.h264(用 AV_CODEC_ID_H264 编码)文件没有。当我尝试在 VLC 中播放文件时,播放/暂停按钮只是闪烁,Windows 中没有缩略图,什么也没有。
在编码 libx264 期间报告以下内容:
“ffprobe.exe test.h264 -show_streams”返回
在那里你可以看到:
我尝试了无数次更改 AVCodecContext 和 av_opt_set 函数的大量参数选项。仍然无法获得正常工作的 H.264 视频。我什至尝试过不同版本的 FFmpeg。没运气。
我正在使用来自 Zeranoe 和 MinGw 4.7.2 的“FFmpeg git-0fb64da 32-bit Dev”构建
ffmpeg - 如何通过ffmpeg AVCodecContext设置x264编码参数
当我使用系统运行良好时,我正在尝试使用ffmpeg/libx264编码和传输实时视频。av_dict_set(&opts, "tune", "zerolatency", 0);
由于 X264 编码参数是由ffmpeg using设置的av_dict_set
,出于某些研究目的,我想自己更改它们。但是中的一些参数 x264_param_t
不能与中的那些参数对应 AVCodecContext
,例如vfr_input
。所以我想知道在ffmpeg中使用libx264时是否有直接将参数传输到 X264 编码器的方法。
谁能帮我?谢谢
c++ - libjpeg 解码 -> x264 编码,帧上有奇怪的伪影
我有一个 jpeg 集合,它必须由 lib jpeg 解码,然后由 x264 编码(在它编码的数据包通过 rtmp 流式传输之后)。我用于解码的代码:
当我发出 frameReady 信号时,我将数据发送到 Encoder,方法,我在其中初始化 Encedor,如下所示:
及编码方式:
解码和编码没有错误地继续进行,最后我得到了有效的视频流,但是,似乎在其中一个步骤中,我为解码器/编码器设置了无效数据。我只得到图像的 1/4 部分(据我了解,左上角)并且它具有无效的颜色并出现彩色条纹。也许我在编码帧时设置了无效的步幅和平面,或者我为 libjpeg 解码器设置的数据不正确。请就我的代码提出问题,我会尽力为你做一些解释。我爆炸了我的大脑..谢谢。
c++ - 如何使用 x264 实现 2 pass 编码?
x264_param_t 结构中是否有参数,或者我必须将帧发送到 x264 dll 两次..?因为我只使用 encoder_encode 函数并且返回 nal units 。我猜它应该是一个参数的组合,并使用了 encoder_encode 两次。
这是我如何初始化参数并链接到 libx264
@nobody555 谢谢!我对 x264_param_apply_fastfirstpass 函数还有另一个问题:
他们在谈论什么选择?
c++ - libx264.dll 暴露了函数 x264_encoder_open_130,这不应该是 x264_encoder_open 吗?
我检查了我的 x264 dll 文件版本,打开函数名为“x264_encoder_open_130”,而 130 恰好是我使用的 x264 的特定内部版本号。我在 Windows 上使用 minGW 构建并链接到它,所以如果我尝试使用更新的 dll,我的程序会崩溃。有没有办法解决这个问题?
video - 编码 h264 以匹配现有流
简而言之:我必须编码少量视频帧并将它们拼接到更大的 h.264 流前面,而无需重新编码所述流。
详细信息:我收到一个多 GB 传输流,其中包含一个 h.264 es 和一个音频 es。目前 h.264 流总是使用 x264 生成的,我可以假设将来会是这种情况。现在我必须在这个流中添加一些视频帧,但不允许解码/编码整个流;这让我有唯一的选择来找出我需要传递 x264_encoder_open 的确切参数,以便两个流匹配。
目前我正在做的是:
- 解复用原始 ts 并提取 h.264 NAL 数据包。
- 当我找到第一个“未注册用户数据”的 SEI 数据包时,我对其进行解析并找到一堆 x264 参数。
- 使用 libavcodec 开始解码视频。这给了我图片的尺寸以及 AVCodecContext 结构中的 h264 配置文件和级别。
- 在 x264_param_t 结构中尽可能匹配所有这些。
我可以用它进行一些编码,并且编码的视频可以正确播放到连接点。当 VLC 到达缝合点时,它开始抛出以下消息序列,并在停止播放后不久:
这清楚地表明我的编码帧与原始帧不匹配。我一直在浏览源代码,似乎找不到这样做的方法。我目前拥有的(除了不工作)涉及很多猜测,所以即使我可以使用我拥有的少数示例文件使其工作,我也会害怕在生产服务器中部署它。
所以显而易见的问题是:有没有一种安全、正式的方式来做到这一点?
提前致谢
ubuntu - 未找到 GStreamer x264enc
我根据这些说明安装了 GStreamer-0.10 和所有模块(基础、好、坏、丑、ffmpeg)(通过单击 prev/next 浏览): http ://www.linuxfromscratch.org/blfs/view/svn/multimedia /gst-plugins-ugly.html
一切似乎都很好,但是当我想执行我的管道时,我收到了这个错误:
显然该模块没有安装:
之后,我通过执行以下命令安装了编解码器:
这也不起作用。所以我手动安装了最新版本:http: //www.videolan.org/developers/x264.html
成功安装 x264 后,我再次在 gstreamer-0.10 丑陋的模块上运行 ./configure 并发现了这一点:
检查 x264 是否可用似乎已完成:
我正在使用 ubuntu 服务器 12.04 LTS。任何想法我必须做什么才能正确编译这个模块?谢谢!
iphone - ffserver — 实时流式传输到 iOS、Android、Flash
我正在同时使用 FFServer 和 FFMpeg 创建从 IPTV 到 Web 的实时流转码到 WebM、Flash、HLS 等多种格式。
ffserver.conf 位于http://pastebin.com/hUky5Jsh
将源流转换为 FFServer:
FFServer 的日志显示如下:
在互联网上搜索解决方案后,我的大脑非常热。
FF服务器:
FFMpeg:
源流是:
ffmpeg - 使用 ffmpeg libav 和 libx264 从图像创建视频?
我正在尝试使用 ffmpeg 库从图像创建视频。这些图像的大小为 1920x1080,应该使用 .mkv 容器使用 H.264 进行编码。我遇到了各种各样的问题,以为我越来越接近解决方案了,但是我真的坚持下去了。使用我使用的设置,我的视频的前 X 帧(大约 40 个,取决于我用于视频的图像和图像数量)不会被编码。avcodec_encode_video2 在 got_picture_ptr = 0 的情况下不返回任何错误(返回值为 0)。结果是一个实际上看起来与预期一样的视频,但前几秒奇怪地跳跃。
所以这就是我创建视频文件的方式:
这是添加框架的方式:
这是清理工作:
我认为它可能与 PTS 和 DTS 值有关,但我已经尝试了一切。帧索引似乎是最有意义的。图像是正确的,我可以毫无问题地将它们保存到文件中。我的想法不多了。如果有比我更了解的人,我会非常感激...
干杯,马里卡纳
更新:
如果这有任何帮助,这是视频编码结束时的输出:
html - 使用 FFMPEG 为 HTML5 视频创建 MP4
我正在尝试使用 FFMPEG 创建一个 MP4 文件来播放 HTML5 视频标签。
我找到了一些使用 libx264 的示例代码,但是当我尝试时,FFMPEG 给了我一个“未知的编码器 libx264”错误。
我要求我的主机将它安装在我的服务器上,并得到以下回复:
经过我们 L3 小组的审查后,我得知 FFMPEG 不再支持 x264。那是一个与 FFMPEG-PHP 一起使用的库,根本不被任何人支持。
为了让它与 FFMPEG 一起使用,您需要联系 FFMPEG 软件的开发人员以获得帮助,因为它超出了我们的支持范围。
我在网上到处找,但似乎找不到答案。如果不再支持 libx264,其他人是怎么做的?libx264 仍然是较旧的 FFMPEG 版本,还是其他方式?