我有一个程序,从USB摄像头接收已知宽度、高度和格式的原始图像数据。然后将每个帧输出到stdout。格式为bgr24。
我需要使用gstreamer将其作为h264流传输,但找不到如何对原始视频流进行编码。
例如,使用ffmpeg可以这样做:

my_video_reader | ffmpeg -f rawvideo -pix_fmt bgr24 -s:v 752x480 -i - -f h264 - | <send data here>

最佳答案

试试下面的pipeline,这是用来将原始yuv帧转换成h264流的。

 gst-launch-1.0 videotestsrc ! "video/x-raw,format=I420,width=352,height=288,framerate=30/1" ! videoparse width=352 height=288 framerate=30/1 ! x264enc bitrate=1024 ref=4 key-int-max=20 ! video/x-h264,stream-format=byte-stream,profile=main ! filesink location=v1

如果要转换文件,而不是videotestsrc,那么只需将videotestsrc替换为filesrc location=filename

关于linux - Gstreamer:从stdout读取原始图像并将其转换为h264流,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37442442/

10-13 03:33