美文网首页编解码
ffmpeg 命令行 常用示例

ffmpeg 命令行 常用示例

作者: FlyingPenguin | 来源:发表于2017-05-11 16:57 被阅读89次
    查看ffmpeg支持的格式
    • 封装格式
    ffmpeg -formats > formats.txt
    

    结果保存在当前目录下的formats.txt, 从中可查询到相关格式,比如

     DE asf             ASF (Advanced / Active Streaming Format)
     DE flv             FLV (Flash Video)
      E mp4              MP4 (MPEG-4 Part 14)
    
    • 编解码格式
    ffmpeg -codecs > codecs.txt
    
    • 编码器格式
    ffmpeg -encoders > encoders.txt
    

    结果保存在当前目录下的encoders.txt文件中,可从中查询支持的格式,比如

     V..... libx264              libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (codec h264)
     A..... aac                  AAC (Advanced Audio Coding)
     A..... libmp3lame           libmp3lame MP3 (MPEG audio layer 3) (codec mp3)
    
    • 解码器格式
    ffmpeg -decoders > decoders.txt
    
    • 协议格式
    ffmpeg -protocols > protocols.txt
    

    结果举例:

    Supported file protocols:
    Input:
      ...
      hls
      ...
      rtp
     ...
      rtmp
    Output:
     ...
      rtp
     ...
      rtmp
    ...
    
    查看文件的信息
    ffmpeg -i sample.mp4
    
    ffmpeg -i sample.mp4 的结果
    将rtmp流保存成文件
    ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy hks.flv
    ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c copy hks.mp4
    
    将文件以rtmp流的方式推到服务器(比如nginx)
    ffmpeg -re -i sample.flv -acodec copy -vcodec copy -f flv rtmp://localhost:1935/live/test 
    ffmpeg -re -i sample.mp4 -acodec copy -vcodec copy -f flv rtmp://localhost:1935/live/test 
    
    提取视频或音频
    • 提取视频
    ffmpeg -i sample.mp4 -vcodec copy -an video.mp4
    
    • 提取音频
    ffmpeg -i sample.mp4 -acodec copy -vn audio.aac
    ffmpeg -i sample.mp4 -acodec libmp3lame -vn audio.mp3
    

    编解码

    • 将aac解码并保存为wav文件
    ffmpeg -i audio.aac audio.wav
    
    将视频转换为图片
    • 将视频转换为图片序列
    ffmpeg -i sample.mp4 output%d.jpg
    
    • 将视频的指定片段转换为gif文件
    ffmpeg  -i sample.mp4 -ss 3 -t 5 -s 320x240 -r 6 -f gif out.gif -y
    

    sample.mp4文件,从第3秒开始,取时长为5秒的视频,将其转换为分辨率为320*240,帧率为6帧/秒的gif文件。

    直播流中进行截图
    ffmpeg.exe 
    -probesize 32768 
    -i "rtmp://192.168.2.245:1936/live/192.168.2.233.stream live=1" 
    -y 
    -t 0.001 
    -ss 1 
    -f image2 
    -r 1 
    ./rtmp.jpg
    

    -ss 指定从什么时间开始
    -t 时长
    -r 帧率
    注意: rtmp流后的 live=1是必须的

    mp4 转换为 flv
    ffmpeg -i input.mp4 -acodec copy -vcodec copy -r 25 -s 640x480 output.flv
    ffmpeg -i input.mp4 -acodec copy -vcodec h264 -r 25 -s 640x480 output.flv
    ffmpeg -i input.mp4 -acodec copy -vcodec h264 -r 25 -s 640x480 -qmin 25 output.flv
    

    qmin的取值范围[-1, 69]

    相关文章

      网友评论

        本文标题:ffmpeg 命令行 常用示例

        本文链接:https://www.haomeiwen.com/subject/hwnbtxtx.html