(1)播放原始視訊yuv資料, 以1920*1280的xxx.yuv為例
ffplay -f rawvideo -video_size 1920x1080 xx.yuv
(2)播放原始音頻(需要大緻知道格式)
ffplay -ar 48000 -channels 1 -f s16le -i xx.pcm
(3)抓取視訊中的某一幀,儲存為圖檔(以下是存取 第199幀)
ffmpeg -i rtmp2file.264 -vf select=`eq(n\,199)` -frames:v 1 frame1.png
(4)分析我抓取rtmp流儲存的檔案
ffprobe rtmp2fileC.flv -select_streams v -show_packets > 1122-show_packets.txt
(5)從服務端将直播流存成檔案
rtmpdump -r rtmp://202.108.14.1:1935/live/abc_1234 -o rtmpdump1.flv
ffmpeg -y -err_detect aggressive -i rtmp://202.108.14.1:1935/live/abc_1234 -c:v copy -an mmi5_stream_by_ffmpeg.flv
ffmpeg -y -err_detect aggressive -i rtmp://202.108.14.1:1935/live/abc_1234 -c copy /Users/wangzhong/recorder/Log/rtmp2file.flv
ffmpeg -y -i rtmp://202.108.14.1:1935/live/abc_1234 -c:v copy -an /Users/wangzhong/recorder/Log/rtmp2fileD.flv -debug_ts
(6)将檔案以rtmp協定推流直播出去
ffmpeg -i /Users/wangzhong/Downloads/video_files/bs_720.mp4 -map 0:v:0 -c:v copy -map 0:a:0 -c:a libvo_aacenc -ac 2 -ar 44100 -b:a 32k -af "asetpts=PTS-STARTPTS" -flags +global_header -f flv rtmp://10.11.50.195:1935/live/123
(7)用ffplay播放,-fflags no buffer低延時
ffplay -fflags nobuffer rtmp://202.108.14.1:1935/live/abc_123
ffplay rtmp://202.108.14.1:1935/live/abc_2234 -fflags nobuffer
(8)自己制造一些特定格式的音視訊流(含幾個B幀、是否cabac編碼、每幀6個slice、碼率、幀率、分辨率、關鍵幀間隔30幀),分兩步,
第一步:重新編碼
ffmpeg -i VID_20161122_104326.mp4 -map 0:v:0 -b:v 3000
k -vf "scale=w=1280:h=720" -c:v libx264 -x264opts bframes=2:keyint=30:min-keyint=5:ref=1:rc-lookahead=15:subme=2:trellis=0:weightp=1:no-mixed-refs:me=dia:no-metree:cabac=0:slices=6 -r 30 -map 0:a:0 -c:a libvo_aacenc -ac 2 -ar 44100 -b:a 32k -flags +global_header -f flv bframes2_720P_20161122_104326.flv
第二步:抽取純視訊
ffmpeg -i bframes2_720P_20161122_104326.flv -c:v copy -bsf:v h264_mp4toannexb -an bframes2_720P_20161122_104326.264
(9)ffmpeg指令行以電腦攝像頭作為直播視訊源
ffmpeg -fflags +nobuffer -avioflags direct -rtbufsize 65536000 -f dshow -i video="Logitech HD Pro Webcam C920" -map 0:v:0 -b:v 1000k -c:v libx264 -x264opts keyint=15:min-keyint=10:ref=1:rc-lookahead=10:subme=2:trellis=0:weightp=1:no-mixed-refs:me=dia:no-mbtree -an -f flv -y rtmp_url
//-avioflags direct該參數可以消除ffmpeg編碼引起的畫面斷層
ffmpeg -avioflags direct -f dshow -i video="Logitech HD Pro Webcam C920" -map 0:v:0 -b:v 1000k -c:v libx264 -x264opts keyint=15:min-keyint=10:ref=1:rc-lookahead=10:subme=2:trellis=0:weightp=1:no-mixed-refs:me=dia:no-mbtree -an -f flv -y rtmp_url
//-f dshow -video_size 1280x720 設定dshow的渲染分辨率
ffmpeg -avioflags direct -f dshow -video_size 1280x720 -i video="Logitech HD Pro Webcam C920" -map 0:v:0 -b:v 1000k -c:v libx264 -x264opts keyint=15:min-keyint=10:ref=1:rc-lookahead=10:subme=2:trellis=0:weightp=1:no-mixed-refs:me=dia:no-mbtree -an -f flv -y rtmp_url