• ffmpeg相关用法


    废话:公司项目需要学习一下ffmpeg处理音频流相关知识,所以文中大多跟音频相关的简单使用,现在还处于只知其一不知其二的阶段,越学越觉得ffmpeg很强大,如文章有任何错误之处还望指出,之后如果学到更多的东西会更新,英语渣渣觉得要是能把原文档啃下来肯定能学到很多,文档很详细,推荐大家去看,碎碎念结束
     
    FFmpeg官网:http://ffmpeg.org/

    常用语句

    1、文件或流转推http流

    ffmpeg -re -i D:11.mp4 -vcodec copy -acodec copy -listen 1 -f flv http://127.0.0.1:8088/test
    -re:用于控制文件传输速度,流输入可不要;
    listen 1:限制拉流端只能一个,可设置为2,但在命令行中不可取
    flv:为格式,一般由输入流的格式决定,常用还有ogg
    vcodec copy&acodec copy:应该可以理解为复制视频和音频流
    mp3同理ffmpeg -re -i D:CloudMusic2.mp3  -c copy -listen 1 -f mp3 http://127.0.0.1:7089

    2、文件或流转推rtsp流

    ffmpeg -re -stream_loop 100 -i D:CloudMusic320.mp3 -vn  -vcodec copy -acodec copy  -map_metadata -1 -rtsp_transport tcp -f rtsp rtsp://172.16.0.29:554/20200118/test
    -stream_loop:循环播放,后接数字100为循环次数
    -vn:不传输视频,类似还有-an,不传输音频,此处用于传输mp3时不传输音频流的其他信息,类似于作者,流派,同样能做到此作用的还可以是  -map 0:a ,代表只传输0通道的数据流,也就是音频流
     -map_metadata -1:设置mp3的信息,类似于作者,流派,封面等

    3、文件或流转推rtp流

    ffmpeg -re -f concat -safe 0 -i  D:CloudMusic320.txt -map 0:a -vcodec copy -acodec copy -map_metadata -1 -f rtp rtp://172.16.0.29:8088
    -concat:用户合并音频流,可以是多个音频文件,也可以是多个音频文件路径组合的txt文件,格式为:

    file 'input1.mkv'

    file 'input2.mkv'

    file 'input3.mkv

    如果文件名有奇怪的字符,要先转义,file后面是音频路径,缺陷是不能同时和stream_loop使用,要实现多文件循环只能在TXT文件重复音频路径

    -safe 0:应该可以理解为安全打开文件

    4、文件或流转码并同时推流(rtsp、rtp等)

    ffmpeg -re -i D:CloudMusicTM.aac -c:a mp3  -vn -f rtp rtp://172.16.0.29:5548     //aac转mp3,同理可替换
    -c:a:0 copy 告诉ffmpeg复制音轨而不重新编码
    -c:a mp3 告诉ffmpeg复制音轨而重新编码
    -vn:去除视频流,转播rtp无法多路复用,可能出现报错Only one stream supported in the RTP muxer
    :无法接收rtp流转发rtp流,因为rtp播发需要sdp文件,sdp文件在接收流完成后产生,可能出现的报错
    Unable to receive RTP payload type 97 without an SDP file describing it

    5、文件或流转码并同时推流rtmp(监控用)

    ffmpeg -rtsp_transport tcp -i "rtspUrl" -vcodec libx264 -vprofile baseline -tune zerolatency -preset superfast -f flv rtmp://127.0.0.1:8081/live/test
    -tune zerolatency:主要用于降低延迟,还有其他选项
    -preset superfast:同上 ,解释如下
     

    最后附上大佬博客https://blog.csdn.net/leixiaohua1020/article/details/15811977

  • 相关阅读:
    Navicat工具破解
    ios7开发者必知
    浏览器工作原理
    Lettcode_104_Maximum Depth of Binary Tree
    LeetCode:Balanced Binary Tree
    error: openssl/md5.h: No such file or directory
    欢迎来到Swift天地(Welcome to Swift)
    最大子阵列和
    【Cocos2d-x Lua】数据库封装类型的操作
    python于lxml应用
  • 原文地址:https://www.cnblogs.com/duojiao/p/14652186.html
Copyright © 2020-2023  润新知