多媒体ffmpeg学习教程

多媒体ffmpeg

目前比较流行的音视频文件为:MP4 flv m3u8

ffmpeg

ffmpeg    ffplay    ffprobe   ffserver
ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip];[main][flip] overlay=0:H/2" OUTPUT
ffmpeg -i 2022.mp4 -vcodec mpeg4 -b:v 200k -r 15 -an output.rmvb
ffmpeg -h demuxer=mp4
ffmpeg -i input.flv -c copy -f mp4 -movflags dash output.mp4
ffmpeg -i 2022.mp4 -c copy -f flv output.flv
ffmpeg -i 2022.mp4 -vcodec copy -acodec aac -f flv output.flv
ffmpeg -i 2022.mp4 -c copy -f flv -flvflags add_keyframe_index add_keyframe_index.flv
ffmpeg -re -i 2022.mp4 -c copy -f hls -bsf:v h264_mp4toannexb output.m3u8

切割音视频

ffmpeg -re -i 2022.mp4 -c copy -f segment -segment_format mp4 test_output-%d.mp4

ffprobe -v quiet -show_packets -select_streams v test_output-0.mp4 2> x | grep pts_time | tail -n 3

ffmpeg -ss 10 -i 2022.mp4 -c copy output1de.ts

抽取音频流

ffmpeg -i 2022.mp4 -vn -acodec copy output.aac

抽取H264视频流

ffmpeg -i 2022.mp4 -vcodec copy -an output.h264

抽取H265数据

ffmpeg -i 2022.mp4 -vcodec copy -an -bsf hevc_mp4toannexb -f hevc output.hevc
ffmpeg -h encoder=libx264
ffmpeg -hide_banner -codecs | grep h264

转码

ffmpeg -i 2022.mp4 -vcodec libx264 -preset ultrafast -b:v 2000k out.mp4

ffmpeg -i 2022.mp4 -vcodec libx264 -preset medium -b:v 2000k out.mp4

ffmpeg -i 2022.mp4 -vcodec libx264 -profile:v baseline -level 3.1 -s 352x288 -an -y -t 10 output_baseline.ts

 ffmpeg -i 2022.mp4 -vcodec libx264 -profile:v high -level 3.1 -s 352x288 -an -y -t 10 output_high.ts
 
 ffmpeg -i 2022.mp4 -c:v libx264 -g 50 -t 60 demo.mp4
 

转码: 控制GOP长度 sc_threshold

ffmpeg -i 2022.mp4 -c:v libx264 -g 50 -sc_threshold 0 -t 60 -y outputs1.mp4

设置内部参数 x264opts

ffmpeg -i 2022.mp4 -c:v libx264 -x264opts "bframes=0" -g 50 -sc_threshold 0 demo.mp4
ffmpeg -i 2022.mp4 -c:v libx264 -x264opts "bframes=0:b-adapt=0" -g 50 -sc_threshold 0 demo.mp4

ffmpeg -i 2022.mp4 -c:v libx264 -x264opts "bframes=10:b-adapt=0" -b:v 1000k -maxrate 1000k -minrate 1000k -bufsize 50k -nal-hrd cbr -g 50 -sc_threshold 0 demo01.mp4

硬件编码

nvidia GPU和Intel QSV

ffmpeg -h encoder=h264_nvenc # intel
ffmpeg -h encoder=h264_cuvid # nvidia

ffmpeg -hwaccel cuvid -vcodec h264_cuvid -i 2022.mp4 -vf scale_npp=1920:1080 -vcodec h264_nvenc -acodec copy -f mp4 -y sss.mp4

Inter QSV

root@ai-evaluation-test:~# ffmpeg -hide_banner -codecs | grep h264
 DEV.LS h264                 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_crystalhd h264_v4l2m2m h264_vdpau h264_cuvid ) (encoders: libx264 libx264rgb h264_nvenc h264_omx h264_v4l2m2m h264_vaapi nvenc nvenc_h264 )
 
 ffmpeg -i 2022.mp4 -pix_fmt nv12 -vcodec h264_qsv -an -y outputqsv.mp4
 ffmpeg -hide_banner -y -hwaccel qsv -i 2022.mp4 -an -c:v hevc_qsv -load_plugin hevc_hw -b:v 5M -maxrate 5M out.mp4
 
 ffmpeg -h decoder=h264_videotoolbox

支持mp3编码:

 ffmpeg -h encoder=libmp3lame
 
  ffmpeg -i sample-3s.mp3 -acodec libmp3lame sample-3s-demo.mp3 # 编码
  
  

设置MP3码率为CBR

ffmpeg -i sample-3s.mp3 -acodec libmp3lame -b:a 64k ss.mp3

设置MP3的码率为 ABR

ffmpeg -i sample-3s.mp3 -acodec libmp3lame -b:a 64k -abr 1 ss.mp3

AAC编码器的使用

ffmpeg -i 2022.mp4 -c:a aac -b:a 160k output.aac # 抽
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值