当前位置:   article > 正文

ffmpeg 常用命令_ffmpeg -y

ffmpeg -y

资料

ffmpeg mp4 mp3 pcm flac转换
ffmpeg mp4转yuv
zhihu
ffmpeg m4a 转pcm_详细介绍ffmpeg基础命令(2)
使用 ffmpeg 实现 MP4 与 GIF 的互转
使用ffmpeg来将mp4视频转换成gif格式图片
用 ffmpeg 压缩视频

mp4转mp3

ffmpeg -i a.mp4 -f MP3 a1.mp3

mp4转flac

ffmpeg -i a.mp4 -f flac -acodec flac -ac 1 -ar 16000 a.flac
这个方法可以转换成功,但是比较耗时

mp4 转 gif

ffmpeg -i out.mp4 out.gif

  • 带有压缩比的
    ffmpeg -i video.mp4 -r 15 -vf scale=300:-1 output.gif

mp3转 flac

ffmpeg -y -i “F:\mp3\11.mp3” -f flac -acodec flac -ac 1 -ar 16000 “F:\flac\11.flac”

mp3转 pcm

ffmpeg -y -i a.mp3 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 a.pcm

提取pcm

ffmpeg -i buweisui.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm
ffmpeg -i buweisui.mp3 -ar 48000 -ac 2 -sample fmt s16 out s16.wav
ffmpeg -i buweisui.mp3 -ar 48000 -ac 2 -codec:a pcm s16le out2 s16le.wav
ffmpeg -i buweisui.mp3 -ar 48000 -ac 2 f32le 48000_2_f32le.pcm

mp4转yuv

ffmpeg -i test.mp4 test.yuv
ffmpeg -i 720.mp4 -pix_fmt yuv420p -s 424x240 out.yuv

播放yuv

ffplay.exe -f rawvideo -video_size 1280x720 -i test.yuv
ffplay -f rawvideo -video_size 1920x1080 -i v1080.yuv

查看视频信息

ffmpeg -i xxx.mp4

fmpeg:ffprobe获取视频分辨率,视频宽高,时长等元数据信息

ffprobe -select_streams v -show_entries format=duration,size,bit_rate,filename -show_streams -v quiet -of csv=“p=0” -of json -i v1080.mp4

{
    "streams": [
        {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "High",
            "codec_type": "video",
            "codec_time_base": "1/50",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 1920,
            "height": 1080,
            "coded_width": 1920,
            "coded_height": 1088,
            "closed_captions": 0,
            "has_b_frames": 2,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "16:9",
            "pix_fmt": "yuv420p",
            "level": 40,
            "chroma_location": "left",
            "refs": 1,
            "is_avc": "true",
            "nal_length_size": "4",
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/12800",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 768000,
            "duration": "60.000000",
            "bit_rate": "1928685",
            "bits_per_raw_sample": "8",
            "nb_frames": "1500",
            "disposition": {
                "default": 1,
                "dub": 0,
                "original": 0,
                "comment": 0,
                "lyrics": 0,
                "karaoke": 0,
                "forced": 0,
                "hearing_impaired": 0,
                "visual_impaired": 0,
                "clean_effects": 0,
                "attached_pic": 0,
                "timed_thumbnails": 0
            },
            "tags": {
                "language": "eng",
                "handler_name": "VideoHandler"
            }
        }
    ],
    "format": {
        "filename": "v1080.mp4",
        "duration": "60.024000",
        "size": "15486233",
        "bit_rate": "2064005"
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63

提取YUV

提取3秒数据,分辨率和源视频一致

ffmpeg -i test.mp4 -t 3 -pix_fmt yuv420p yuv420p_orig.yuv

提取3秒数据,分辨率转为320x240

ffmpeg -i test.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240.yuv

提取RGB

提取3秒数据,分辨率为320x240

ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb

RGB和YUV之间的转换

ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x420.yuv -pix_fmt rgb24 rgb24_320x240_2.rgb

播放YUV数据

ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x420.yuv

播放RGB数据

ffplay -pixel_format rgb24 -video_size 1920x1080 -i v1080.rgb
ffplay -pixel_format rgb24 -video_size 320x240 -framerate 5 -i rgb24_320x240.rgb

播放PCM数据

ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm
-ar set audio sampling rate(int Hz)(from 0 to INT_MAX)(default 0)
-ac set number of audio channels (from 0 to INT_MAX)(default 0)
ffplay -ar 16000 -channels 1 -f s16le -i v1080.pcm

转封装

没有重新编码,很快就可以生成

ffmpeg -i xxx.mp4 -codec copy -f flv out.flv

从10s开始转, 到20秒就停止

ffmpeg -i xxx.mp4 -codec copy -ss 10 -t 20 -f flv out.flv

查询mp3的全称

ffmpeg -encodeers | findstr mp3
在这里插入图片描述

从mp4中提取音频并存储为mp3音频文件

ffmpeg pi xxx.mp4 -b:a 192k -ar 48000 -ac 2 -acodec libmp3lane out.mp3
ffprobe out.mp3
在这里插入图片描述

可以设置,只输出200帧

ffmpeg -i xxx.mp4 -b:a 192k -ar 48000 -ac 2 -acodec libmp3lane -aframes 200 out2.mp3

查询下h265编码器全称

ffmpeg -encoders | findstr h265
在这里插入图片描述
-aspect:是指在显示的时候,做拉伸,并不是所编码的时候。16:9指的是纵横比(主要是显示拉伸比例),与分辨率是不同概念。

ffmpeg -i xxx.mp4 -vframes 300 -b:v 300k -r 30 -s 640x480 -aspect 16:9 -vcodec libx265 out.h265
在这里插入图片描述

ffplay out.h265

在这里插入图片描述

保留封装格式

提取视频,存储裸数据

ffmpeg -i xxx.mp4 -vcodec copy -an video.mp4

提取音频

ffmpeg -i test.mp4 -acodc copy -vn audio.mp4

提取视频

保留编码格式

ffmpeg -i test.mp4 -vcodec copy -an test_copy.h264

强制指定 编码器

ffmpeg -i test.mp4 -vcodec libx264 -an test.h264

ffmpeg提取像素数据

提取YUV

提取3s数据,分辨率和原视频一致

ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p yuv420p_test.yuv

提取3s数据,分辨率转为320x240

ffmpeg -i test_1280x720.mp4 -t 3 -pix_fmt yuv420p -s 320x240 yuv420p_320x240_test.yuv

提取RGB

ffmpeg -i test.mp4 -t 3 -pix_fmt rgb24 -s 320x240 rgb24_320x240.rgb

RGB和YUV之间的转换

ffmpeg -s 320x240 -pix_fmt yuv420p -i yuv420p_320x240.yuv -pix_fmt rgb24 rgb24_320x240_2.rgb

提取PCM

-f 就是设置音频输出格式,pcm是纯裸音频数据。wav是有个头数据,不同的地方只有头部,对比如下图:

ffmpeg -i xxx.mp3 -ar 48000 -ac 2 -f s16le 48000_2_s16le.pcm

ffmpeg -i xxx.mp3 -ar 48000 -ac 2 -sample_fmt s16 out_s16.wav

ffmpeg -i xxx.mp3 -ar 48000 -ac 2 -codec:a pcm_s16le out2_s16le.wav

ffmpeg -i xxx.mp3 -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm

ffmpeg -i xxx.mp4 -t 10 -vn -ar 48000 -ac 2 -f f32le 48000_2_f32le_2.pcm

在这里插入图片描述

显示mp3的播放时长

ffprobe -i your_mp3_file.mp3 -show_entries format=duration -v quiet -of csv=p=0
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/522532
推荐阅读
相关标签
  

闽ICP备14008679号