文章目录
FFmpeg 系列文章目录
一、使用 ffplay 播放视频的基本命令
二、ffplay 播放过程中的控制命令
三、测试 TS 流循环切换 音频流/视频流/字幕流/节目
一、使用 ffplay 播放视频的基本命令
使用 ffplay 播放视频的基本命令 :
ffplay 视频路径
播放 " D:\ffmpeg\yuanshen.mp4 " 视频 , 进入 " D:\ffmpeg\ " 目录 , 执行如下命令 :
ffplay yuanshen.mp4
命令行输出 :
D:\ffmpeg>ffplay yuanshen.mp4 ffplay version n4.4-19-g8d172d9409 Copyright (c) 2003-2021 the FFmpeg developers built with gcc 10-win32 (GCC) 20210408 configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --enable-shared --disable-static --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libvorbis --enable-opencl --enable-libvmaf --enable-vulkan --enable-amf --enable-libaom --enable-avisynth --enable-libdav1d --enable-libdavs2 --enable-ffnvcodec --enable-cuda-llvm --enable-libglslang --enable-libgme --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --enable-libvidstab --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp libavutil 56. 70.100 / 56. 70.100 libavcodec 58.134.100 / 58.134.100 libavformat 58. 76.100 / 58. 76.100 libavdevice 58. 13.100 / 58. 13.100 libavfilter 7.110.100 / 7.110.100 libswscale 5. 9.100 / 5. 9.100 libswresample 3. 9.100 / 3. 9.100 libpostproc 55. 9.100 / 55. 9.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'yuanshen.mp4': 0B f=0/0 Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.29.100 Duration: 00:06:13.10, start: 0.000000, bitrate: 2623 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 2489 kb/s, 25 fps, 25 tbr, 25k tbn, 50 tbc (default) Metadata: handler_name : VideoHandler vendor_id : [0][0][0][0] Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler vendor_id : [0][0][0][0] 13.74 A-V: 0.009 fd= 4 aq= 22KB vq= 354KB sq= 0B f=0/0 D:\ffmpeg>
执行过程 :
二、ffplay 播放过程中的控制命令
播放控制 :
逐帧播放 : S ;
向后 / 向前拖动 10 秒 : Left / Right 箭头按钮 ;
向后 / 向前拖动 1 分钟 : Down / Up 箭头按钮 ;
暂停播放 : P , 空格 ; 按下 P 或 空格键 , 可以暂停播放 ;
停止播放 : Q , Esc ; 开始播放后 , 按下 Q 或 Esc 按键 , 可以退出播放 ;
全屏切换 : F 按键可以切换全屏 ; 鼠标左键双击 也可以进行全屏切换 ;
音量控制 :
静音 : M 键可切换 静音 / 非静音 状态 ;
减少音量 : 9 或 / 按键 , 减少音量 ;
增加音量 : 0 或 * 按键 , 增加音量 ;
循环切换 : 针对有多个音频流以及视频流 , 如电视节目 TS 流 , 多个电视台信号在一个流中 , 可以通过切换 音频流 / 视频流 / 节目 等选择不同的电视台信号进行观看 ;
循环切换音频流 : A ; ( Audio )
循环切换视频流 : V ; ( Vedio )
循环切换字幕流 : T ;
循环切换节目 : C ;
循环切换过滤器或显示模式 : W ;
三、测试 TS 流循环切换 音频流/视频流/字幕流/节目
TS 流文件 cctv.ts , 其包含的流信息如下 , 该文件中有 7 77 个视频流 , 7 77 个音频流 ;
使用
ffplay cctv.ts
命令播放包含多个视频流 / 音频流 ;
如果声音太大可以使用 -volume 选项控制声音 :
ffplay -volume 3 cctv.ts
播放开始后 , 按下 A 可以切换音频流 , 按下 V 可以切换视频流 , 按下 T 可以切换字幕流 ,
按下 C 可以切换完整的节目 , 即同时切换 音频流 , 视频流 , 字幕流 ;