我如何从 gstreamer 的 x264enc 插件中获取 codec_data?
How do I get codec_data from gstreamer's x264enc plugin?
我有一个 RTMP 服务器的自定义代码,并尝试添加一个 gstreamer 管道来转码传入的视频并将其提供给 RTMP 播放客户端。到目前为止,我有以下管道:
appsrc name=input !
decodebin !
videoscale ! video/x-raw,width=800,height=600 !
x264enc speed-preset=veryfast name=encoder !
appsink name=output
为了使用我的 appsink 的 h264 样本,我需要生成一个带有编解码器数据的序列头数据包。但是,我找不到编解码器数据。
x264enc
步骤的上限是:
"video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.2, profile=(string)high, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)4/3, framerate=(fraction)60/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2"
那里没有 codec_data
大写字母,这就是我将它传递给 appsrc
的方式,这样我的 h264 数据包就可以被读取了。我还能如何从 gstream 获取编解码器数据?
我能够通过将 x264enc
输出传递到 h264parse
来提取 codec_data
。
我有一个 RTMP 服务器的自定义代码,并尝试添加一个 gstreamer 管道来转码传入的视频并将其提供给 RTMP 播放客户端。到目前为止,我有以下管道:
appsrc name=input !
decodebin !
videoscale ! video/x-raw,width=800,height=600 !
x264enc speed-preset=veryfast name=encoder !
appsink name=output
为了使用我的 appsink 的 h264 样本,我需要生成一个带有编解码器数据的序列头数据包。但是,我找不到编解码器数据。
x264enc
步骤的上限是:
"video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)3.2, profile=(string)high, width=(int)800, height=(int)600, pixel-aspect-ratio=(fraction)4/3, framerate=(fraction)60/1, interlace-mode=(string)progressive, colorimetry=(string)bt709, chroma-site=(string)mpeg2"
那里没有 codec_data
大写字母,这就是我将它传递给 appsrc
的方式,这样我的 h264 数据包就可以被读取了。我还能如何从 gstream 获取编解码器数据?
我能够通过将 x264enc
输出传递到 h264parse
来提取 codec_data
。