• ffmpeg常用命令


    推流

    ffmpeg -re -stream_loop -1 -i in.flv -c copy -f flv outurl

    推流追加时间戳

    ffmpeg -stream_loop -1 -re -i move.flv -vf "settb=AVTB,setpts='trunc(PTS/1K)*1K+st(1,trunc(RTCTIME/1K))-1K*trunc(ld(1)/1K)',drawtext=fontfile=arial.ttf:text='%{localtime}.%{eif\:1M*t-1K*trunc(t*1K)\:d\:3}':fontsize=40:fontcolor=red: x=50: y=50" -vcodec libx264 -r 25 -g 75 -acodec copy -f flv rtmp://xxxxxxx

    推流时去除视频或者音频

    去除音频-c:v copy -an
    去除视频-c:a copy -vn
    例如:
    转h264 : ffmpeg -i .\cut.mp4 -c:v copy -an cut.h264
    转aacffmpeg -i .\cut.mp4 -vn -c:a copy test.aac

    常用的转码参数

    ffmpeg -i .\cut.mp4 -vf "drawtext=fontfile=simhei.ttf: text=‘720_4M_250’:x=10:y=10:fontsize=24:fontcolor=red:shadowy=2" -vcodec h264 -acodec copy -bf 0 -g 250 -keyint_min 250 -sc_threshold 0 -r 25 -b:v 4M -maxrate 4M -s 1280:720 720p_4M_250.flv
    -bf 0 代表不含B帧
    -g 250 代表关键帧之间间隔是250帧
    -sc threshold 0 代表关闭关键帧补偿
    -r 25 代表帧率
    -b:v 4M 代表码率是4兆
    -s 1280:720 代表分辨率
    -vf “drawtext=fontfile=simhei.ttf: text=‘720_4M_250’:x=10:y=10:fontsize=24:fontcolor=red:shadowy=2” 代表在屏幕左上角添加水印 720_4M_250 红色字体

    查看是否含有B帧

    mac
    ffprobe -v quiet -show_frames -select_streams v test.mp4 | grep "pict_type=B"
    windows
    ffprobe -v quiet -show_frames -select_streams v test.mp4 | findstr "pict_type=B"

    查看音频反向

    ffplay -showmode 1 "rtmp://xxxxxxxxx"

    ffplay播放时取消缓存

    ffplay -fflags nobuffer

    查看当前设备的音视频设备列表

    mac
    ffmpeg -f avfoundation -list_devices true -i ""
    windows
    ffmpeg -list_devices true -f dshow -i dummy

    通过ffprobe分析流

    ffprobe -show_packets -i "rtmp:/xxxxxxx" -of xml
    ffprobe -show_frames -i "rtmp:/xxxxxxx" -of xml

    设置屏幕宽高比

    ffmpeg -i input.mp4 -aspect 16:9 output.mp4
    常用的宽高比 16:9,4:3,16:10,5:4,2:2,1:1,2:3,5:1,2:3,9:1

    ffmpeg录制屏幕

    mac
    ffmpeg -f avfoundation -framerate 25 -i "1" output.mp4
    ffmpeg -f avfoundation -framerate 30 -pixel_format uyvy422 -i "2" output.mp4
    windows
    ffmpeg -f gdigrab -framerate 25 -i desktop output.mp4

    ffmpeg录制屏幕和声音

    mac
    ffmpeg -f avfoundation -framerate 25 -i "1:0" -f avfoundation -i ":0" output.mp4
    -f avfoundation -i “:0”: 指定音频输入为默认设备,可以改为其他音频设备的index

    windows
    ffmpeg -f gdigrab -framerate 25 -i desktop -f dshow -i audio="Microphone (Realtek High Definition Audio)" output.mp4
    -f dshow -i audio=“Microphone (Realtek High Definition Audio)”: 指定音频输入设备,可以吧Microphone (Realtek High Definition Audio)换为其他音频设备的名称

  • 相关阅读:
    字节内部的算法图册被LeetCode抢先开源,竟导致大厂通过率飙升
    使用VScode调试与编写bash脚本
    day07 Elasticsearch搜索引擎3
    Dynamsoft BarcodeReader SDK Java 9.6.30 Crack
    算法通关村 | 透彻理解动态规划
    Citus 分布式 PostgreSQL 集群 - SQL Reference(摄取、修改数据 DML)
    情感分析系列(三)——使用TextCNN进行情感分析
    【JavaScript--React】本篇文章将带你体验不同于vue框架的eact框架
    学习【线程、进程、并发、并行、CPU、GPU】
    中国数字化转型浪潮下,移动钱包成为全球App标配
  • 原文地址:https://blog.csdn.net/ThinPikachu/article/details/139295125