ffmpeg
1
| usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
|
音频转码
1 2 3 4 5 6 7 8
| #转码生成新的文件,目标为 - ar 采样率 44100, - ac 双声道,编码格式 aac - acodec 编码器 aac ffmpeg -i source.mp3 -ar 44100 -ac 2 -acodec aac -y output.m4a
# 转换为 pcm ffmpeg -i source.mp3 -f s16le -acodec pcm_s16le output.raw
|
从 mp4 中提取 yuv
1
| ffmpeg -i xx.mp4 -s 960x540 -pix_fmt yuv420p xx.yuv
|
-s
来设置 yuv 数据的分辨率
-pix_fmt
设置 yuv 的颜色格式
从mp4或flv文件中提取h264
1
| ffmpeg -i test.flv -vcodec copy -an -bsf:v h264_mp4toannexb test.h264
|
从mp4文件中提取aac
1
| ffmpeg -i input.mp4 -vn -c:a copy output.aac
|
把一个 non-fragment MP4 转换成 fragment MP4,可以使用 FFmpeg 的 -movflags 来转换。参考:fragment mp4 转换
对于原始文件为非 MP4 文件
1 2
| ffmpeg -i trailer_1080p.mov -c:v copy -c:a copy -movflags frag_keyframe+empty_moov bunny_fragmented.mp4
|
对于原始文件已经是 MP4 文件
1 2
| ffmpeg -i non_fragmented.mp4 -strict -2 -movflags frag_keyframe+empty_moov fragmented.mp4
|
将 yuv 编码成 mp4
1 2
| ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \ -c:v libx264 output.mp4
|
将 yuv 编码成 h264, 参考 Using ffmpeg to encode a raw video to H.264 format
1 2
| ffmpeg -f rawvideo -pix_fmt yuv420p -s:v 1920x1080 -r 25 -i input.yuv \ -c:v libx264 -f rawvideo output.264
|
ffplay
播放yuv
1 2
| ffplay -f rawvideo -video_size 1280x720 -pixel_format nv12 xxx.yuv ffplay -f rawvideo -video_size 1280x720 -pixel_format yuv420p xxx.yuv
|
播放pcm
1
| ffplay -ar 16000 -ac 1 -f s16le -i xxx.pcm
|
ffplay 字幕, 参考https://www.pianshen.com/article/9580874222/
使用自带的第0个字幕流
1
| ffplay -vf subtitles=infile:si=0 infile
|