推荐采用 格式转换 处理图像、音视频格式的转换。
| 功能 | 命令 | 文字解释 | 备注 |
|---|---|---|---|
| MP4 |
转码以适合在 PSP (或 iPod/iPhone) 中播放 ffmpeg -i source_video.avi -b 300 -s 320x240 -vcodec xvid -ab 32 -ar 24000 -acodec aac final_video.mp4 ffmpeg -i source_video.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X final_video.mp4 |
||
|
ffmpeg -i input.mp4 -vcodec libx264 -preset medium -b:v 2000k output.mp4 把 input.mp4 按 medium 编码方式转换成 output.mp4 文档 |
|||
|
ffmpeg -i input.mp4 -vcodec libx264 -preset ultrafast -b:v 2000k output.mp4 把 input.mp4 按 ultrafast 编码方式转换成 output.mp4 文档 |
|||
|
ffmpeg -i input.mp4 -c:v libx264 -g 50 -t 60 output.mp4 把 input.mp4 按每 50 帧 GOP 方式转换成 output.mp4 文档 IDR 帧频率 50 GOP |
|||
|
ffmpeg -i input.mp4 -c:v libx264 -g 50 -sc_threshold 0 -t 60 -y output.mp4 把 input.mp4 严格按每 50 帧 GOP 方式转换成 output.mp4 文档 -sc_threshold 0 场景切换时不强行插入关键帧 |
|||
|
ffmpeg -i input.mp4 -c:v libx264 -x264opts "bframes=0" -g 50 -sc_threshold 0 output.mp4 把 input.mp4 严格按每 50 帧 GOP 无 B 帧方式转换成 output.mp4 文档 -sc_threshold 0 场景切换时不强行插入关键帧 B 帧多清晰度高,但编解码更复杂 |
|||
|
ffmpeg -i input.mp4 -c:v libx264 -x264opts "bframes=3:b-adapt=0" -g 50 -sc_threshold 0 output.mp4 把 input.mp4 严格按每 50 帧 GOP 每 2 个 P 帧存放 3 个 B 帧方式转换成 output.mp4 文档 -sc_threshold 0 场景切换时不强行插入关键帧 B 帧多清晰度高,但编解码更复杂 |
|||
|
ffmpeg -i input.mp4 -c:v copy -c:a libfdk_aac -b:a 384k output.mp4 把 input.mp4 的音频按第三方 libfdk_aac 编码 384KBit/s 码率转换成 output.mp4 文档 |
|||
|
ffmpeg -re -i input.mp4 -vcodec libx264 -an output.mp4 把 input.mp4 按 libx264 编码转换成 output.mp4 文档 |
|||
| FLV | ffmpeg -i video_origine.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv video_finale.flv | 把 .avi 视频转换成 .flv | |
| ffmpeg -i input_ac3.mp4 -vcodec copy -acodec aac -f flv output.flv | 将 input_ac3.mp4 音频先转换成 AAC 格式再输出 output.flv 文件 | ||
| ffmpeg -i input.mp4 -c copy -f flv -flvflags add_keyframe_index output.flv | 为 input.mp4 添加关键帧索引转换成 output.flv 文件 | ||
| M3U8 | ffmpeg -re -i input.mp4 -c copy -f hls -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频转换成 output.m3u8 文档 | |
| ffmpeg -re -i input.mp4 -c copy -f hls -bsf:v h264_mp4toannexb -hls_time 10 output.m3u8 | 把 input.mp4 视频按每隔 10 秒切片转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_time 10 -hls_flags split_by_time output.m3u8 | 把 input.mp4 视频严格按每隔 10 秒切片转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -use_localtime 1 -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按以本地时间作切片名方式转换成 output.m3u8 文档 | ||
|
ffmpeg -i input.mp4 -c copy -f hls -hls_time 3 -hls_list_size 0 -method PUT -t 30 http://127.0.0.1/test/output.m3u8 把 input.mp4 视频按每隔 3 秒推送到服务器 http://127.0.0.1/test/output.m3u8 Nginx 配置
location / {
client_max_body_size 10M;
dav_access group:rw all:rw;
dav_methods PUT DELETE MKCOL COPY MOVE;
root html/;
}
|
|||
| ffmpeg -re -i input.mp4 -c copy -f hls -bsf:v h264_mp4toannexb -hls_list_size 3 output.m3u8 | 把 input.mp4 视频分 3 个 TS 切片转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -bsf:v h264_mp4toannexb -start_number 300 output.m3u8 | 把 input.mp4 视频从第 300 序列起转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -bsf:v h264_mp4toannexb -hls_wrap 3 output.m3u8 | 把 input.mp4 视频按每 3 个 TS 切片分段转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_base_url http://192.168.0.1/live/ -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按 http://192.168.0.1/live/ 路径转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_flags delete_segments -hls_list_size 4 -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按删除早期切片方式转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_flags round_durations -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按圆整切片持续时间方式转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_flags discont_start -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按在切片前插入 EXT-X-DISCONTINUITY 标签方式转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_flags omit_endlist -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按不在结尾添加 EXT-X-ENDLIST 标签方式转换成 output.m3u8 文档 | ||
| ffmpeg -re -i input.mp4 -c copy -f hls -hls_segment_filename test_output-%d.ts -bsf:v h264_mp4toannexb output.m3u8 | 把 input.mp4 视频按 test_output-%d.ts 分段文件名模块转换成 output.m3u8 文档 | ||
| DV | ffmpeg -i input.avi -s pal -r pal -aspect 4:3 -ar 48000 -ac 2 output.dv | 把 input.avi 音视频转换成 output.dv 文档 | |
| TS | ffmpeg -re -i input.mp4 -vcodec libx264 -acodec copy -f mpegts output.ts | 将 input.mp4 编码转换成 output.ts 文档 | |
|
ffmpeg -i input.mp4 -vcodec libx264 -profile:v high -level 3.1 -s 352x288 -an -y -t 10 output.ts ffprobe -v quiet -show_frames -select_streams v output.ts | grep "pict_type=B" | WC -l |
将 input.mp4 按 high profile 编码方式转换成 output.ts 文档 查看 output.ts 文档是否包含 B 帧 (包含) |
||
|
ffmpeg -i input.mp4 -vcodec libx264 -profile:v baseline -level 3.1 -s 352x288 -an -y -t 10 output.ts ffprobe -v quiet -show_frames -select_streams v output.ts | grep "pict_type=B" | WC -l |
将 input.mp4 按 baseline profile 编码方式转换成 output.ts 文档 查看 output.ts 文档是否包含 B 帧 (不包含) |
||
| ffmpeg -i input.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 output.ts | 把 input.mp4 严格按每 50 帧 GOP 每 2 个 P 帧存放 10 个 B 帧,1000KBit/s 恒定码率 50 KB 缓冲大小方式转换成 output.mp4 文档 | H.264 编码 HRD 信号形式为 CBR 恒定码率 | |
| 功能 | 命令 | 文字解释 | 备注 |
|---|---|---|---|
| AAC | ffmpeg -i input.mp4 -c:a aac -b:a 160k output.aac | 把 input.mp4 按默认 aac 编码 160KBit/s 码率转换成 output.aac 文档 | |
| M4A | ffmpeg -i input.wav -c:a aac -q:a 2 output.m4a | 把 input.wav 按默认 aac 编码 qscale 2 转换成 output.m4a 文档 | |
| ffmpeg -i input.wav -c:a libfdk_aac -b:a 128k output.m4a | 把 input.wav 按第三方 libfdk_aac 编码 128KBit/s 码率转换成 output.m4a 文档 | ||
| ffmpeg -i input.wav -c:a libfdk_aac -vbr 3 output.m4a | 把 input.wav 按第三方 libfdk_aac 编码 vbr 动态码率 3 转换成 output.m4a 文档 | ||
| ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a | 把 input.wav 按第三方 libfdk_aac aac_he 编码 cbr 恒定码率 64KBit/s 转换成 output.m4a 文档 | ||
| ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a | 把 input.wav 按第三方 libfdk_aac aac_he_v2 编码 cbr 恒定码率 32KBit/s 转换成 output.m4a 文档 | ||
| MP3 | ffmpeg -h encoder=libmp3lame | 查看 libmp3lame 编码器参数 | |
| ffmpeg -i INPUT -acodec libmp3lame output.mp3 | 把 INPUT 转换成 output.mp3 文档 | ||
| ffmpeg -i input.mp3 -acodec libmp3lame -q:a 8 output.mp3 | 把 input.mp3 按 VBR 动态 70-105KBit/s 码率转换成 output.mp3 文档 | ||
| ffmpeg -i input.mp3 -acodec libmp3lame -b:a 64k output.mp3 | 把 input.mp3 按 CBR 恒定 64KBit/s 码率转换成 output.mp3 文档 | ||
| ffmpeg -i input.mp3 -acodec libmp3lame -b:a 64k -abr 1 output.mp3 | 把 input.mp3 按 ABR 方式 64KBit/s 码率转换成 output.mp3 文档 |
版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。