美文网首页音视频从入门到放弃ffmpeg
ffmpeg之-ffmpeg/ffplay/ffprobe(六)

ffmpeg之-ffmpeg/ffplay/ffprobe(六)

作者: 仙人掌__ | 来源:发表于2020-05-02 11:07 被阅读0次

    ffplay常用命令

    1、ffplay播放yuv文件
    ffplay -f rawvideo -pix_fmt nv12 -video_size 640x480 -framerate 50 -i test.yuv
    备注:如果不指定-pix_fmt,默认为yuv420p;如果不指定framerate 默认25fps
    通过ffplay -pix_fmts 可以查看支持的播放格式

    2、ffplay播放pcm文件
    ffplay -ar 44100 -ac 2 -f f32le -i test_441_f32le_2.pcm
    备注:播放采样率为44100,声道数为2 存储格式为32位小端序的音频数据

    ffmpeg常用命令

    • ffmpeg -i input -c:v libx264 -preset slow -crf 22-c:a copy output.mkv
      -c:v:表示使用的视频编码器库 这里表示使用x264库;copy代表视频不重新编码
      -preset:设定x264的预设参数为 "slow";它可取值为"ultrafast,superfast,veryfast,
      faster,fast,medium,slow,slower,veryslow,placebo";默认值为medium。预设参数代表了编码速度,编码速度越慢,压缩率则越大。
      -crf:x264默认的质量和码率控制方式;x264的取值范围(0-51),默认值为23,值越小,压缩率越小(视频质量月好),压缩后文件越大;推荐的取值为(18-28)

    • ffmpeg -i test_1280x720.MP4 -ss 00:00:00 -t 00:00:10 -pix_fmt yuv420p -vf scale=640:360 -f rawvideo test_640x360_yuv420p.yuv
      MP4转换为YUV并同时进行压缩和截取

    • 其它格式转换为PCM格式
      ffmpeg -i test-mp3-1.mp3 -f s16le -ar 44100 -ac 2 -acodec pcm_s16le test_441_s16le_2.pcm
      tips:pcm的不同格式之间不能相互转化

    • PCM格式转化为其它格式
      ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i input.pcm output.wav

    • 音频和视频合成一个视频文件
      ffmpeg -i test_1280x720_1.mp4 -i test-mp3-1.mp3 -map 0:v:0 -map 1:a:0 -c:a copy output.mp4

    • ffmpeg生成HLS的m3u8与ts片段
      1、方式一:
      ffmpeg -i cat.mp4 -c copy -bsf h264_mp4toannexb cat.ts
      ffmpeg -i cat.ts -c copy -map 0 -f segment -segment_list playlist.m3u8 -segment_time 2 cat_output%03d.ts
      2、方式二:
      ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict -2 -f hls output.m3u8
      -hls_time n: 设置每片的长度,默认值为2。单位为秒
      -hls_list_size n:设置播放列表保存的最多条目,设置为0会保存有所片信息,默认值为5
      -hls_wrap n:设置多少片之后开始覆盖,如果设置为0则不会覆盖,默认值为0.这个选项能够避免在磁盘上存储过多的片,而且能够限制写入磁盘的最多的片的数量
      -hls_start_number n:设置播放列表中sequence number的值为number,默认值为0

    • 从视频中提取图片并生成jpg
      ffmpeg -i test.mp4 -r 30 -ss 00:00:20 -vframes 10 image-%3d.jpg
      -ss 00:00:20 表示从20秒开始提取
      -r 30 表示提取的图片序列帧率为30fps
      -vframes 10 表示提取10帧

    • 图片序列生成视频
      ffmpeg -y -r 10 -i image%04d.jpg output.mp4
      将当前目录下image001.jpg,image002.jpg,image003.jpg,......序列生成视频。视频帧率为10

    相关文章

      网友评论

        本文标题:ffmpeg之-ffmpeg/ffplay/ffprobe(六)

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