直接整了个脚本
#!/bin/bash
#参考1:http://blog.csdn.net/jack0106/article/details/5592557
#参考2:http://wiki.oz9aec.net/index.php/Gstreamer_cheat_sheet
#参考3:blog.csdn.net/wzwxiaozheng/article/details/6130818
#想知道有没有flvmux,有没有x264enc,用gst-inspect | grep flv就能查到
#下面这个仅仅是显示而不是存为文件
#gst-launch -e v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! aspectratiocrop aspect-ratio=16/9 ! textoverlay text="测试" ! timeoverlay halign=right valign=top ! clockoverlay halign=left valign=top time-format="%Y/%m/%d %H:%M:%S" ! ffmpegcolorspace ! xvimagesink
#下面这个存为文件
gst-launch -e v4l2src ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! aspectratiocrop aspect-ratio=16/9 ! textoverlay text="测试" ! timeoverlay halign=right valign=top ! clockoverlay halign=left valign=top time-format="%Y/%m/%d %H:%M:%S" ! x264enc ! flvmux ! filesink location=file.flv
#-e表示收到kill -9能完整退出来而不崩溃
#v4l2src表示摄像头,没有实际摄像头可以用videotestsrc代替
#video/x-raw-yuv表示将采集到的图像变为yuv格式,另外一个格式是RGB,不过好像一般摄像头都不支持rgb格式。
#width=640,height=480,framerate=30/1表示宽640,高480,帧率为30,现在据说一般都有30,摄像会停顿模糊,60帧的时候摄像正好,120帧是神器,但据说摄像并是很好
#aspectratiocrop aspect-ratio=16/9将高宽比4:3变为16:9
#textoverlay text="测试"表示在图像下方增加“测试”两个字,如果上面高宽比比640,480还小,则测试两个字就是乱码啦。
#timeoverlay halign=right valign=top表示在右上角显示摄像摄了多长时间
#clockoverlay halign=left valign=top time-format="%Y/%m/%d %H:%M:%S"表示在左上角显示摄像时候的时间,时间格式为年月日时分秒
#x264enc表示将前面折腾了半天的图像用h.264编码格式进行编码
#flvmuxh表示渲染为flv格式
#filesink location=file.flv表示将视频存为file.flv 文件存到当前目录下
#ffmpegcolorspace进行颜色空间转换,好像是转为yuv格式
#xvimagesink表示?