版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012188065/article/details/86703761
1、播放视频
1.1 播放指定视频
ffplay -i test.mp4
1.2 以特定大小的窗口播放视频
如 以640x480的窗口来播放指定视频
ffplay -x 640 -y 480 -i test.mp4
2、转码视频
2.1 更改文件的封装格式
如 mp4->mkv, 示例:
ffmpeg -i test.mp4 -vcodec copy -acodec copy -f matroska test.mkv
注1:
-vcodec copy -acodec copy 等选项可以简化为 -codec copy,
ffmpeg会原封不动将video packet, audio packet 以及subtitle packet(如果有的话) 拷贝到新的文件中。即 :
ffmpeg -i test.mp4 -codec copy -f matroska test.mkv
注2:
-i 后面跟 input文件名字
-f 后面跟 output文件的封装格式
-vcodec 后跟指定的视频编码格式,如果是copy,则表示转码时不更改video packet的数据,编码格式与源文件相同
-acodec 后跟指定的音频编码格式,如果是copy,则表示转码时不更改audio packet的数据,编码格式与源文件相同
-subtitle 用法同 -vcodec -acodec
注3:
具体的封装协议代号可以通过
ffmpeg -muxers
命令来查看
$ffmpeg -muxers
ffmpeg version N-91579-g243ecadad5 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration:
libavutil 56. 18.102 / 56. 18.102
libavcodec 58. 22.100 / 58. 22.100
libavformat 58. 17.101 / 58. 17.101
libavdevice 58. 4.101 / 58. 4.101
libavfilter 7. 26.100 / 7. 26.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
File formats:
D. = Demuxing supported
.E = Muxing supported
--
E 3g2 3GP2 (3GPP2 file format)
E 3gp 3GP (3GPP file format)
E a64 a64 - video for Commodore 64
E ac3 raw AC-3
E adts ADTS AAC (Advanced Audio Coding)
E adx CRI ADX
E aiff Audio IFF
E alaw PCM A-law
……
E matroska Matroska
E md5 MD5 testing
E microdvd MicroDVD subtitle format
E mjpeg raw MJPEG video
E mkvtimestamp_v2 extract pts as timecode v2 format, as defined by mkvtoolnix
E mlp raw MLP
E mmf Yamaha SMAF
E mov QuickTime / MOV
E mp2 MP2 (MPEG audio layer 2)
E mp3 MP3 (MPEG audio layer 3)
E mp4 MP4 (MPEG-4 Part 14)
……
第二列就是我们要找的封装格式,如 3gp, aac这些
注4:
具体的编码协议代号可以通过
ffmpeg -codecs
命令来查看
$ffmpeg -encoders
ffmpeg version N-91579-g243ecadad5 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 4.8 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
configuration:
libavutil 56. 18.102 / 56. 18.102
libavcodec 58. 22.100 / 58. 22.100
libavformat 58. 17.101 / 58. 17.101
libavdevice 58. 4.101 / 58. 4.101
libavfilter 7. 26.100 / 7. 26.100
libswscale 5. 2.100 / 5. 2.100
libswresample 3. 2.100 / 3. 2.100
Encoders:
V..... = Video
A..... = Audio
S..... = Subtitle
.F.... = Frame-level multithreading
..S... = Slice-level multithreading
...X.. = Codec is experimental
....B. = Supports draw_horiz_band
.....D = Supports direct rendering method 1
------
V..... a64multi Multicolor charset for Commodore 64 (codec a64_multi)
V..... a64multi5 Multicolor charset for Commodore 64, extended with 5th color (colram) (codec a64_multi5)
V..... alias_pix Alias/Wavefront PIX image
……
V..... flv FLV / Sorenson Spark / Sorenson H.263 (Flash Video) (codec flv1)
V..... gif GIF (Graphics Interchange Format)
V..... h261 H.261
V..... h263 H.263 / H.263-1996
V.S... h263p H.263+ / H.263-1998 / H.263 version 2
V..... h264_vaapi H.264/AVC (VAAPI) (codec h264)
VF.... huffyuv Huffyuv / HuffYUV
V..... jpeg2000 JPEG 2000
……
A..... aac AAC (Advanced Audio Coding)
A..... ac3 ATSC A/52A (AC-3)
A..... ac3_fixed ATSC A/52A (AC-3) (codec ac3)
A..... adpcm_adx SEGA CRI ADX ADPCM
A..... g722 G.722 ADPCM (codec adpcm_g722)
第二列就是我们要找的编码格式,如 h263, aac, ac3这些
同理,举一反三
查看所有的decoder
ffmpeg -decoders
查看所有支持的颜色格式
ffmpeg -pix_fmts
查看所有支持的采样格式
ffmpeg -sample_fmts
等等等等