无法将gstreamer输出管道输入ffmpeg

时间:2015-01-31 08:01:08

标签: ffmpeg streaming gstreamer

有没有人让gstreamer成功将视频输出传输到ffmpeg?

我尝试过使用/ dev / stdout并且一直遇到错误:

gst-launch -e v4l2src device = / dev / video0! 'video / x-raw-yuv,width = 1920,height = 1080,framerate = 5/1'! nv_omx_h264enc质量等级= 2! mp4mux! filesink location = / dev / stdout \  | ffmpeg -y -i - -codec copy -f flv test.flv

... [aac @ 0xebc4c0]无法找到流0的编解码器参数(音频:aac(Main),7.1,fltp,1351 kb / s):未指定的采样率 考虑增加'analyzeuration'和'probesize'选项的值 pipe ::找不到编解码器参数 输入#0,aac,来自'pipe:':   持续时间:N / A,比特率:1351 kb / s     流#0:0:音频:aac(主),7.1,fltp,1351 kb / s [flv @ 0xec9280]未设置采样率 输出#0,flv,到'test.flv':     流#0:0:音频:aac,7.1,1351 kb / s 流映射:   流#0:0 - > #0:0(复制) 无法为输出文件#0写入标头(编解码器参数不正确?):参数无效 ubuntu的@的Tegra-ubuntu的:〜$

单独运行命令(用文件替换/ dev / stdout)可以正常工作。

如果你让它发挥作用并且可以分享你是如何做到的,那就太好了。

感谢。

1 个答案:

答案 0 :(得分:1)

您不能将MP4用作流式格式,因为它无法线性解析,例如没有随机访问。因此,它可以处理文件,但不能通过管道。

用可以流式传输的格式替换容器格式应该可以解决问题:

gst-launch -e v4l2src device=/dev/video0 \
! 'video/x-raw-yuv,width=1920,height=1080,framerate=5/1' \
! nv_omx_h264enc quality-level=2 ! matroskamux \
! filesink location=/dev/stdout \
 | ffmpeg -y -i - -codec copy -f flv test.flv