FFmpeg常用命令详解与实战

需积分: 50 2 下载量 68 浏览量 更新于2024-08-30 收藏 1KB TXT 举报
"这篇文章主要介绍了ffmpeg的常用命令,包括视频和音频处理的各种操作,如查看文件信息、提取音频和视频流、转封装、添加音轨、提取裸流以及裁剪时长等。" 在多媒体处理领域,ffmpeg是一个非常强大的开源工具,能够执行各种复杂的音频和视频转换任务。以下是对标题和描述中提到的一些ffmpeg命令及其知识点的详细说明: 1. **编码器选择**:`-c` 参数用于指定编码器,例如 `-c:v` 指定视频编码器,`-c:a` 指定音频编码器。`-c copy` 选项则会直接复制流,不进行重新编码,以保持原始质量并提高速度。 2. **查看文件信息**:`ffmpeg -i input.mp4 -hide_banner` 可以用来查看输入文件的详细信息,包括编码格式、分辨率、码率等。 3. **提取音频**:`ffmpeg -i test.mp4 -vn -c:a copy test.aac` 将从`test.mp4`中提取音频流,并保存为AAC格式的`test.aac`。 4. **提取视频**:`ffmpeg -i test2.mp4 -an -c:v copy test_no_audio.mp4` 从`test2.mp4`中提取视频流,不包含音频,保存为`test_no_audio.mp4`。 5. **转封装**:`ffmpeg -i input.mp4 output.avi` 可以将MP4格式转换为AVI格式,不改变编码格式。 6. **添加音轨**:`ffmpeg -i test.aac -i test_no_audio.mp4 -strict -2 out.mp4` 合并`test.aac`音频和`test_no_audio.mp4`视频,生成新的`out.mp4`文件。 7. **提取裸流**:ffmpeg提供了不同的方法来提取H264或H265裸流。例如,`ffmpeg -i 1.mp4 -codec copy -bsf:hevc_mp4toannexb -f hevc 2.h265` 提取H265裸流,`-bsf`是比特流过滤器,用于将H265从MP4格式转换为Annex B格式。相同方式可以提取H264裸流。 8. **裸流封装**:`ffmpeg -fh264 -i test.h264 -vcodec copy ffmpeg_demo.ts` 将H264裸流封装到TS容器中。这个过程不涉及重新编码,仅改变容器格式。 9. **裁剪音频时长**:`ffmpeg -i 8K.wav -vn -acodec copy -ss 00:00:10 -t 00:00:05 speak_test.wav` 从音频文件中裁剪出10秒至15秒的时间段,生成新的音频文件。 10. **裁剪视频时长**:`ffmpeg -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y` 对视频进行裁剪,从第10秒开始,持续到第15秒,保留原编码格式。 这些命令是ffmpeg使用中的基础操作,通过它们,你可以实现对视频和音频的灵活处理。在实际应用中,还可以结合更多参数和过滤器进行更复杂的操作,如调整码率、裁剪画面、添加水印等。熟悉并掌握这些命令,对于进行多媒体处理工作非常有帮助。