• FFMPEG 常用命令行


    1. 分离音视频

    • 分离视频:ffmpeg -i test.mkv -vcodec copy -an test_video.mp4
    • 分离音频:ffmpeg -i test.mkv -acodec copy -vn test_audio.mp2

    2. 解复用

    ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264

    ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

    3. 视频转码

    ffmpeg -i test.mp4 -vcodec h264 -s 480*480 -an -f m4v test.264

    ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264

    说明: -bf B帧数目控制,-g 关键帧间隔控制,-s 分辨率控制

    4. 视频封装

    ffmpeg –i test_video.mp4 –i test_audio.mp2 –vcodec copy –acodec copy test.mkv

    5. 视频剪切

    提取图片ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg

    剪切视频

    剪切从0:1:30开始时长20s的视频

    ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi

    剪切从0:1:30开始到0:2:30秒间的视频

    ffmpeg -i input.avi -vcodec copy -acodec copy -ss 0:1:30 -to 0:2:30 output.avi

    6. 视频录制

    ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

    7.叠加水印

    使用命令ffmpeg -i Titanic.mkv -vf "movie=test.PNG,scale=100:150[watermask];[in][watermask] overlay=100:100[out]" -y Titanic.mp4

    scale:水印的大小

    overlay:水印的位置

    8.将MP3转换为PCM数据

    ffmpeg -i test.mp3 -f s16be -ab 192 -ar 44100 test.pcm

    9. 推送RTP流、接收RTP流并存为ts文件

    • 推送RTP流

    ffmpeg -re -i 4kp30_avc.mp4 -an -c copy -f rtp rtp://192.168.25.89:5004 > rtp.sdp

    • ffplay 接收rtp流

    ffplay.exe -protocol_whitelist "udp,tcp,http,https,file,rtp" rtp.sdp

    • ffmpeg 接收rtp流,并存为ts文件

    ffmpeg -protocol_whitelist "udp,tcp,http,https,file,rtp" -i rtp.sdp -c copy 4kp30_avc.ts

    10. ffmpeg 编码

    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg4 bus_cif.avi//avi
    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec mpeg2video bus_cif.VOB//dvd
    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec wmv1 bus_cif.wmv//wmv
    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec h264 bus_cif.mp4//mp4
    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec flv bus_cif.flv//flv
    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec rv10 bus_cif.rm//rm
    ffmpeg -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec vp9 bus_cif.webm//webm
    
    

    11. ffmpeg 解码

    ffmpeg -i test1.h264 -c:v rawvideo -pix_fmt yuv420p test1.yuv
    

    12. 截取 YUV

    从第0帧开始截取30帧

    ffmpeg -s widthxheight -i input.yuv -c:v rawvideo -filter:v select="between(n\, 0\, 29)" out.yuv
    

    根据时间截取帧(截取从第10秒到第20秒)

    ffmpeg -s widthxheight -i input.yuv -c:v rawvideo -filter:v select="between(t\, 10\, 20)" out.yuv
    

    13. 压缩分辨率

    ffmpeg -i 1080_60i.ts -s 720x576 720x576.ts
    

    14. ffplay 播放YUV

    ffplay -f rawvideo -video_size 1280x720 -pix_fmt nv12  test.yuv
    需要指定的参数:
    1. -video_size 指定yuv的宽高
    2. -pix_fmt 指定yuv的格式
    yuv的格式名可以通过 ffplay -pix_fmts来查询
    

    15. ffplay 播放PCM

    ffplay -ar 44100 -channels 1 -f s16le -i test.pcm
    需要指定的参数:
    1. -ar pcm的采样率
    2. -channels pcm的通道数
    3. -f pcm的格式
    pcm的格式可以通过ffplay -sample_fmts来查询
    

    16. 将 PCM 数据编码为 AC3

    ffmpeg -y -f s16le -ac 1 -ar 44100 -acodec pcm_s16le -i audio_1.pcm test.ac3
    
  • 相关阅读:
    设置页面标题title
    路由跳转,页面位置不在顶部
    PyTorch深度学习入门
    删除ubuntu后开机进入grub的解决办法
    研一上英语
    python中常用的几个函数的正确用法-lambda/filter/map/reduce
    【Python教程】 re 模块中findall() 函数返回值展现方式的用法详解
    【Python教程】5种常见字符串去除空格的操作方法
    对python中浅拷贝和深拷贝分析详细介绍
    Git使用
  • 原文地址:https://www.cnblogs.com/standardzero/p/10823407.html
Copyright © 2020-2023  润新知