常用命令

  • gstreamer
    • 数据采集
    • 数据输出
    • 数据处理
  • ffmpeg
    • 查看信息
    • 分离视频音频流
    • 视频格式转换
    • 图像处理
    • ffplay
    • ffprobe
    • mplayer
  • V4L2
    • 查看信息
  • UVC
    • 查看信息
  • YUV 测试文件下载

gstreamer

数据采集

  1. 采集USB摄像头
    gst-launch-1.0 -v v4l2src device=/dev/video0 ! autovideoconvert ! video/x-raw, format=I420, width=1280, height=720 ! glimagesink
  2. 采集 rtsp 流
    gst-launch-1.0 rtspsrc location=rtsp://192.168.1.217/main-live ! rtph264depay ! h264parse ! video/x-h264 ! avdec_h264 ! xvimagesink
  3. 采集视频文件
    gst-launch-1.0 uridecodebin uri=file:///home/cup.mp4 ! videoconvert ! autovideosink
  4. tcp 接收数据
    gst-launch-1.0 tcpserversrc host=192.168.1.228 port=12345 ! gdpdepay ! glimagesink
  5. udp 接收数据 (未压缩数据udp包 > 65507,会失败 )
    gst-launch-1.0 udpsrc port=5200 ! application/x-rtp, encoding-name=H264, payload=96 ! rtph264depay ! h264parse ! avdec_h264 ! glimagesink
  6. 采集测试数据
    gst-launch-1.0 videotestsrc pattern=“snow” ! video/x-raw, format=NV12, width=1280, height=720 ! glimagesink
  7. 采集音频
    gst-launch-1.0 alsasrc device=hw:0,1 ! audio/x-raw, rate=16000, channels=2, layout=interleaved, format=S16LE ! audioconvert ! alawenc ! fakesink sync=false enable-last-sample=false

数据输出

  1. tcp 发送USB摄像头数据
    gst-launch-1.0 -v v4l2src device=/dev/video0 ! autovideoconvert ! video/x-raw, format=I420, width=1280, height=720 ! gdppay ! tcpclientsink host=192.168.1.228 port=12345
  2. tcp 发送rtsp数据
    gst-launch-1.0 rtspsrc location=rtsp://192.168.1.217/main-live ! rtph264depay ! h264parse ! video/x-h264 ! avdec_h264 ! gdppay ! tcpclientsink host=192.168.1.228 port=12345
  3. tcp 发送测试数据
    gst-launch-1.0 videotestsrc ! video/x-raw, format=I420, width=1280, height=720 ! gdppay ! tcpclientsink host=192.168.1.228 port=12345
    注:❤️ 不加gdppay和gdpdepay会失败,Payloads GStreamer Data Protocol buffers
  4. udp 发送rtsp数据
    gst-launch-1.0 rtspsrc location=rtsp://192.168.1.217/main-live ! udpsink port=5200
  5. udp 发送测试数据
    gst-launch-1.0 videotestsrc ! x264enc ! video/x-h264, stream-format=byte-stream ! rtph264pay ! udpsink port=5200

数据处理

  1. 多路拼接
    gst-launch-1.0 videotestsrc ! video/x-raw,format=AYUV,framerate=(fraction)10/1,width=200,height=200 ! videobox border-alpha=0 top=-0 bottom=-200 right=-200 ! videomixer name=mix sink_0::alpha=0.9 sink_1::alpha=0.9 sink_2::alpha=0.9 sink_3::alpha=0.9 ! queue leaky=downstream ! videoconvert n-threads=2 ! xvimagesink videotestsrc ! video/x-raw,format=AYUV,framerate=(fraction)10/1,width=200,height=200 ! videobox border-alpha=0 top=-200 bottom=-0 right=-200 ! mix.
  1. 画中画指定位置
    gst-launch-1.0 -v videotestsrc name=src1 videotestsrc name=src2 videomixer name=mix sink_0::xpos=0 sink_0::ypos=0 sink_1::xpos=640 sink_1::ypos=360 ! autovideosink src1. ! queue ! videoscale ! video/x-raw,width=1280,height=720 ! videoconvert ! mix.sink_0 src2. ! queue ! videoscale ! video/x-raw,width=640,height=360 ! videoconvert n-threads= 4 ! mix.sink_1
  2. 画中画默认位置
    gst-launch-1.0 -e videotestsrc ! video/x-raw,format=NV12,framerate=10/1, width=200, height=150 ! videomixer name=mix ! autovideoconvert ! xvimagesink videotestsrc ! video/x-raw, format=NV12, framerate=10/1, width=640, height=360 ! mix.
  1. 文字叠加
    gst-launch-1.0 videotestsrc ! video/x-raw,width=1280,height=720 ! textoverlay text=“好的” ! autovideosink
  1. 格式过滤
    gst-launch-1.0 -e videotestsrc pattern=“snow” ! capsfilter caps=“video/x-raw,width=1024,height=768,format=RGB” ! glimagesink
  1. 图像 resize
    gst-launch-1.0 -e videotestsrc pattern=“snow” ! capsfilter caps=“video/x-raw,width=1024,height=768,format=RGB” ! videoscale ! video/x-raw,width=640,height=360 ! glimagesink
  1. 分离视频文件的音视频播放
    gst-launch-1.0 -v uridecodebin uri=file:///视频/cup.mp4 name=decoder ! videoconvert ! autovideosink decoder. ! audioconvert ! autoaudiosink
  1. tcp 接收音视频保存文件
    (1)保存avi:gst-launch-1.0 tcpserversrc host=10.18.9.254 port=12345 ! gdpdepay ! videoconvert ! jpegenc ! avimux name=mux ! filesink location=“test.avi” tcpserversrc host=10.18.9.254 port=12346 ! gdpdepay ! audioconvert ! avenc_aac ! aacparse ! mux.
    (2)保存mkv:gst-launch-1.0 matroskamux name=smux ! filesink location=“video.mkv” tcpserversrc host=10.18.9.254 port=12345 ! gdpdepay ! videoconvert ! jpegenc ! smux.video_0 tcpserversrc host=10.18.9.254 port=12346 ! gdpdepay ! audioconvert ! avenc_aac ! aacparse ! smux.audio_0
    (3)发送:gst-launch-1.0 uridecodebin uri=file:///视频/Megamind.avi name=decoder ! videoconvert ! gdppay ! tcpclientsink host=10.18.9.254 port=12345 decoder. ! audioconvert ! gdppay ! tcpclientsink host=10.18.9.254 port=12346

ffmpeg

查看信息

  1. 查看本地的视频信息
    ffmpeg -i file.avi

分离视频音频流

  1. 分离视频流
    ffmpeg -i input_file -vcodec copy -an output_file_video
  2. 分离音频流
    ffmpeg -i input_file -acodec copy -vn output_file_audio

视频格式转换

  1. ts 转 mp4
    ffmpeg -i test.ts -acodec copy -vcodec copy -f mp4 output.mp4
  2. h264 转 ts
    ffmpeg -i test.h264 -vcodec copy -f mpegts output.ts
  3. h264 转 mp4
    ffmpeg -i test.h264 -vcodec copy -f mp4 output.mp4
  4. mp4 转 flv
    ffmpeg -i test.mp4 -acodec copy -vcodec copy -f flv output.flv
  5. flv 转 mp4
    ffmpeg -i test.flv -b:v 640k output.mp4
  6. mkv 转 avi
    ffmpeg -i test.mkv -vcodec copy -acodec copy output.avi
  7. mkv 转 mp4
    ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

图像处理

  1. 截取指定时间的缩略图
    (1) ffmpeg –i test.mp4 -y -f image2 -ss 8 -t 0.001 -s 350x240 testImage.jpg
    (2) ffmpeg -s 640x480 -pix_fmt nv21 -i nv21_118.yuv -f image2 -pix_fmt bgr24 1.jpg
  2. 添加图片水印
    ffmpeg -i input.mp4 -i logo.png -filter_complex overlay test1.mp4
  3. 添加GIF
    ffmpeg -y -i test2.mp4 -ignore_loop 0 -i test.gif -filter_complex overlay=0:H-h test_out2.mp4
  4. 添加文字水印
    ffmpeg -i input.flv -vf “drawtext=fontfile=simhei.ttf: text=‘test’:x=100:y=10:fontsize=24:fontcolor=yellow:shadowy=2” drawtext.mp4
  5. 旋转90°
    ffmpeg -i test.mp4 -vf “transpose=0” out.mp4
    注释:0, 逆时针旋转90°再水平翻转; 1, 顺时针90°; 2, 逆时针90°; 3, 顺时针90°再水平翻转;
  6. 水平翻转
    ffmpeg -i test.mp4 -vf hflip out.mp4
  7. 垂直翻转
    ffmpeg -i test.mp4 -vf vflip out.mp4
  8. 提取图片
    ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg
  9. 截取指定时间的视频
    (1) ffmpeg -ss 1:05 -i input.mp4 -t 10 -c:v copy -c:a copy output.mp4
    注释:-r,频率;-ss,开始时间;-t,持续时间;
    (2) ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y
  10. 视频倒放,音频不变
    ffmpeg -i inputfile.mp4 -vf reverse reversed.mp4//视频倒放,音频不变
  11. 视频加速
    ffmpeg -i inputfile.mp4 -vf setpts=PTS/2 -af atempo=2 output.mp4
    备注:帧速率变为2倍,调整倍速范围【0.25,4】
  12. 视频减速
    ffmpeg -i input.mkv -an -filter:v “setpts=0.5*PTS” output.mkv
  13. 视频拼接 mpeg
    (1) ffmpeg -i 1.mp4 -qscale 4 1.mpg
    (2) ffmpeg -i 2.mp4 -qscale 4 2.mpg
    (3) cat 1.mpg 2.mpg | ffmpeg -f mpeg -i - -qscale 6 -vcodec mpeg4 output.mp4
    注释:mpeg是支持简单拼接的,所以 mp4 --> mpeg --> mp4.
  14. 视频拼接 ts
    (1) ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts
    (2) ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts
    (3) ffmpeg -i “concat:1.ts|2.ts” -acodec copy -vcodec copy -absf aac_adtstoasc output.mp4
    注释: ts流可以 concate,所以 mp4 --> ts --> concate ts --> mp4.
  15. 视频合并
    ffmpeg -i input1.mp4 -i input2.mp4 -i input3.mp4 -lavfi hstack=inputs=3 output.mp4
    (1)hstack/vstack 代表水平和垂直方向
    (2)xstack 用户自己排版
    备注:视频output.mp4只会保留input1的音频
  16. 把mp3文件合并到mp4
    ffmpeg -i output.mp4 -i audio3.mp3 -c:v copy -c:a aac -strict experimental success.mp4
  17. 其它参数用法: ffmpeg 官网参数简介

ffplay

  1. 播放yuv视频
    ffplay -pixel_format yuv420p -video_size 720x480 -framerate 25 yuv420p_test.yuv
    注释:rgb24,nv21等格式
  2. 播放rgb视频
    ffplay -i nv21_118.rgb -pix_fmt rgb24 -s 640x480
  3. 循环播放
    ffplay pm.mp4 -loop 10

ffprobe

  1. 主要用于检测多媒体信息(时长、分辨率、帧率、音频采样率、声道数等)
  2. ffprobe -i input.mp4 -show_streams -show_format -print_format json
    (1)print_format支持:json和xml

mplayer

  1. 播放yuv视频
    mplayer -demuxer rawvideo -rawvideo w=1280:h=720 v4l2.yuv

V4L2

查看信息

  1. 查看设备信息
    v4l2-ctl -d /dev/video2 --all

UVC

查看信息

  1. 打开视频并配置图像参数
    guvcview -d /dev/video2

YUV 测试文件下载

  1. http://trace.eas.asu.edu/yuv/
  2. http://media.xiph.org/video/derf/

流媒体 - 02 常用命令(gst+ffmpeg+v4l2)相关推荐

  1. ffmpeg 常用基本命令和ffmpeg处理RTMP流媒体的常用命令

    ffmpeg 常用基本命令 1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i in ...

  2. Linux 02 常用命令,重点使用

    目录管理 绝对路径和相对路径 Linux的目录结构为树状结构,最顶级的目录为根目录 / . 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们. 绝对路径: 路径的写法,由根目录 / 写起 ...

  3. FFmpeg 常用命令汇总

    https://www.yuv420.com/2019/12/23/ffmpeg-chang-yong-ming-ling-hui-zong/ 引言 开源音视频处理工具FFMPEG以其强大的功能而在音 ...

  4. FFmpeg入门之常用命令

    ffmpeg常用命令 常用命令分类 ffmpeg处理流程 基本信息查询 如命令行: ffmpeg -codecs 录制命令 UBUNTU上录制mp4的命令 ffmpeg -thread_queue_s ...

  5. FFmpeg:常用命令小笔记

    https://code.videolan.org/videolan/x264/FFmpeg的详细介绍可以查看官网wiki提供的一些信息,这里只是列举具体几种常用的命令 一:格式转换 #普通封装格式的 ...

  6. 【网络通信 -- 直播】FFMPEG 简介与常用命令总结

    [网络通信 -- 直播]FFMPEG 简介与常用命令总结 [1]FFMPEG 简介 FFmpeg,项目的名称来自 MPEG 视频编码标准,"FF"代表"Fast Forw ...

  7. FFMPEG转码常用命令研究

    ffmpeg简介 官网链接是http://www.ffmpeg.org/上有说明,它是音视频的分离,转换,解码的完全解决方案.  其中最重要的就是libavcodec库.它被mplayer或者xine ...

  8. 【Linux】31. ffmpeg常用命令

    原文网址 使用网络上的各种转码软件,比如爱剪辑,简直崩溃了!比如,它竟然强行把你要编辑的视频的前面,插入了他的广告!很不爽,决定用ffmpeg. ffmpeg做IT media的都知道,很强大,只不多 ...

  9. [FFmpeg] ffmpeg 常用命令

    1. 视频转换 比如一个avi文件,想转为mp4,或者一个mp4想转为ts.  ffmpeg -i input.avi output.mp4  ffmpeg -i input.mp4 output.t ...

  10. FFmpeg常用命令参数

    FFmpeg常用命令参数 陈拓 2021/08/31-2020/09/01 1. 视频文件转gif图像 命令格式: ffmpeg -ss 5 -t 10 -i input.mp4 -y -s 640x ...

最新文章

  1. 推荐Scum敏捷开发的几款工具
  2. NPOI 导入Excel和读取Excel
  3. Codeforces Round#310 div2
  4. 使用gui调试x86系统的汇编代码
  5. [蓝桥杯][算法提高VIP]聪明的美食家-dp
  6. 2017282110261-高级软件工程第二次作业
  7. java日期大小比较
  8. 工程师追查线上问题(或运维)常用的shell命令
  9. kali安装步骤失败 选择并安装软件_交通仿真建模软件Vissim7.0/6.0/5.3安装步骤
  10. Cocos Creator大厅+子游戏模式
  11. 猴子搬香蕉Java实现_猴子搬香蕉问题
  12. 查杀webshell木马
  13. CPU,GPU,TPU,NPU都是什么?
  14. MySQL数据库子查询#where、from、exists三大类型子查询总结
  15. Excel如何利用函数删除数据中空格
  16. Java struts mysql实现的薪资工资管理系统源码+运行教程
  17. HTML下拉菜单怎么做成横向,JQuery实现绚丽的横向下拉菜单
  18. Laravel自定义artisan命令在Sell中运行
  19. 传统行业如何搭建大数据团队?
  20. Python问题:FileNotFoundError: [WinError 2] 系统找不到指定的文件。(已解决)

热门文章

  1. 2021全国省市区街道社区五级SQL文件以及JAVA爬取代码
  2. java deprecated 注释_Java注释中的@deprecated与源代码中的@Deprecated
  3. 最简单的联想笔记本重装系统方法,一键重装系统图解
  4. 写好的python如何在其它电脑上运行_写人作文-写人作文300字-400字-500字
  5. The credentials mode of request initiated by the XMLHttpRequest is controlled by the withCredentials
  6. UE4遇到的各种奇葩问题
  7. Linux基础入门(详细教程)
  8. 用MATLAB计算常规矩阵函数 eAt sinA
  9. 如何锻炼腹肌更加有效?
  10. 《思考的技巧》- 学习总结