FFMPEG压缩-管道与文件



好日子,

我已经编写了一个应用程序,它使用V4L2驱动程序从C920捕获H264原始帧。字节被输出到stdout中,并可以通过管道传输到文件或任何程序

我想做的是:

/捕获|ffmpeg-f h264-i-b 500000-vcodec复制输出.mp4

这个想法是捕捉一个原始视频,并将其转换为mp4文件。它工作得很好,但是,从未应用过比特率压缩。它最终得到了一个与原始文件大小相同的文件(因为相机输出的是压缩的h264文件,但已经在原始帧中了)

然而,如果我改为

/cature>input.raw

ffmpeg -i out.mp4 -b 500000 output.mp4

现在,它将文件压缩到合理的大小。这是有原因的吗?我目前唯一的解决方案是使用gstreamer这样的替代方案(它有h264的问题),或者找出ffmpeg API,看看我是否可以添加一些代码,使其对帧进行动态压缩。

我想问题是你使用了-vcodec copy,它说不要触摸视频编解码器。为了进行全面的重新编码,我会省略这个论点。

来自ffmpeg文档:

流复制是通过向"-codec"选项提供复制参数来选择的模式。它使ffmpeg省略了对指定流的解码和编码步骤,因此它只进行解复用和复用。它对于更改容器格式或修改容器级元数据非常有用。

请注意,-vcodec-codec:v的别名,这也是-codec回答您问题的原因。

相关内容

  • 没有找到相关文章

最新更新