1. 从媒体文件中提取原始码流数据(这里从mp4文件中提取其中的h264码流并保存成h264文件)
ffmpeg.exe -i test.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 test.h264
选项说明:
-i test.mp4 :是输入的MP4文件
-codec copy:从MP4封装中进行拷贝
-bsf: h264_mp4toannexb:从MP4拷贝到annexB封装(-bsf: h264_mp4toannexb两个间是空格)
-f h264:采用h.264格式
test.h264:输出的文件名称
2. 从媒体文件中提取原始码流数据(这里从mp4文件中提取其中的aac码流并保存成aac/m4a文件)
ffmpeg.exe -i test.mp4 -vn -y -acodec copy test.aac
ffmpeg.exe -i test.mp4 -vn -y -acodec copy test.m4a
注:aac,m4a文件可以在VLC中播放。
3. mp4媒体文件转封装,文件拼接
ffmpeg -i 1.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 1.ts;
ffmpeg -i 2.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 2.ts;
ffmpeg -i 3.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 3.ts;
ffmpeg -i 4.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 4.ts;
ffmpeg -i 5.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 5.ts;
ffmpeg -i 6.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 6.ts;
ffmpeg -i 7.mp4 -vcodec copy -acodec copy -vbsf h264_mp4toannexb 7.ts;
ffmpeg -i "concat:1.ts|2.ts|3.ts|4.ts|5.ts|6.ts|7.ts" -acodec copy -vcodec copy -absf aac_adtstoasc wo_de_qian_ban_sheng.mp4
4. 从媒体视频文件中截取其中一段视频
ffmpeg -i ./test.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./out.mp4 -y
-ss time_off set the start time offset 设置从视频的哪个时间点开始截取,上文从视频的第10s开始截取
-to 截到视频的哪个时间点结束。上文到视频的第15s结束。截出的视频共5s.
如果用-t 表示截取多长的时间如 上文-to 换位-t则是截取从视频的第10s开始,截取15s时长的视频。即截出来的视频共15s.
注意的地方是:
如果将-ss放在-i ./plutopr.mp4后面则-to的作用就没了,跟-t一样的效果了,变成了截取多长视频。一定要注意-ss的位置。
参数解析
-vcodec copy表示使用跟原视频一样的视频编解码器。
-acodec copy表示使用跟原视频一样的音频编解码器。
-i 表示源视频文件
-y 表示如果输出文件已存在则覆盖。
5. 从媒体视频文件中取出音视频帧信息
ffprobe.exe -i test.mp4 -show_frames > test.frames
6. 将h264文件转yuv文件
ffmpeg -i text.h264 -vcodec rawvideo -an out.yuv