ffmpeg - 仅使用 libx264 在服务器上进行编码并在客户端使用 libffmpeg 进行解码,仅流式传输视频所需的最少元数据量是多少?

标签 ffmpeg video-streaming video-encoding libx264

我想将视频(无音频)从服务器流式传输到客户端。我将使用 libx264 对视频进行编码并使用 ffmpeg 对其进行解码。我计划使用固定设置(至少客户端和服务器都会提前知道它们)。我想知道是否可以避免以容器格式(如 mp4 或 mkv)包装压缩视频。

现在我可以使用 x264_encoder_encode 对我的帧进行编码。我得到一个压缩的帧,我可以为每一帧都这样做。我需要向客户端发送哪些额外信息(如果有的话),以便 ffmpeg 可以解码压缩帧,更重要的是如何使用 libx264 获取它。我假设我可能需要生成 NAL 信息(x264_nal_encode?)。了解播放视频所需的最低要求以及如何将各个部分组合在一起将非常有帮助。

最佳答案

我发现最少信息量是每帧的 NAL 单元,这会给我一个原始的 h264 流。如果我要将其写入文件,如果添加 .h264,我可以使用 VLC 观看
我也可以使用 ffmpeg 打开这样的文件,但如果我想流式传输它,那么使用 RTSP 更有意义,Live555 是一个很好的开源库:http://www.live555.com/liveMedia/

在他们的常见问题解答中,他们提到了如何将编码器的输出发送到 live555,并且客户端和服务器都有源代码。我还没有完成编码,但这似乎是一个合理的解决方案

关于ffmpeg - 仅使用 libx264 在服务器上进行编码并在客户端使用 libffmpeg 进行解码,仅流式传输视频所需的最少元数据量是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710471/

相关文章:

c++ - AVFormatContext 错误 : I can't get the AVFormatContext

java - 如何在 Windows 中使用 Java(ffmpeg 等)快速截取桌面屏幕截图?

video-streaming - 树莓派无延迟(<10ms)视频流

ffmpeg - 是否可以使用一个命令将一个 yuv 文件编码为 3 个具有不同比特率的 h.264 文件?

ffmpeg - H.264 的 scencut 功能是否会增加文件大小?

ffmpeg - 如何在文件过多的情况下使用 ffmpeg concat 协议(protocol)?

c++ - 将 mp4 解码为原始帧 Windows C++

android - AVCDecoder : Video resolution too high, 拒绝它

javascript getUserMedia 获取媒体流时间

php - 在线视频流