ffmpeg命令的一些应用场景

本文详细介绍FFmpeg在音视频处理中的多种应用,包括信息查看、播放速率调整、音频重采样、视频裁剪及合并等操作。通过具体实例,展示如何使用FFmpeg命令进行高效音视频编辑。

ffmpeg命令的一些应用场景

ffmpeg 查看信息

ffmpeg -i input.flv -vf showinfo -f null - > res.txt 2>&1

修改播放速率

ffmpeg -y -i input.flv -filter_complex "[0:v]setpts=0.5*PTS[v];[0:a]atempo=2.0[a]" -map "[v]" -map "[a]" -c:a speex -c:v h264 output.flv

只修改音频

ffmpeg -y -i input.flv -filter_complex "[0:a]atempo=0.74712[a]" -map "[a]" -c:a libspeex  -ar 16000 -cbr_quality 6 -vad 1 -frames_per_packet 8 output.flv

只改视频

ffmpeg -y -i video.flv -filter_complex "[0:v]setpts=0.85962*PTS[v]" -map "[v]" -c:v h264 output.flv

音频重采样16KHz

ffmpeg -i input.flv -af aresample=async=16000  -c:a libspeex  -ar 16000 -cbr_quality 6 -vad 1 -frames_per_packet 8 -f flv fix.flv

flv转wav

ffmpeg -i input.flv -ar 44100 fix.wav

mp3转flv

ffmpeg -i input.mp3  -c:a libspeex  -ar 16000 -cbr_quality 6 -vad 1 -frames_per_packet 8  fix1.flv

ffmpeg修复视频的时间戳(帧率15帧))

ffmpeg -i input.flv -filter_complex "setpts=N/(15*TB)" -profile:v main -level 3.1 -c:v h264 out.flv

剪裁flv文件,截取从-ss开始的-t时间

ffmpeg -i input.flv -ss 00:00:00 -t 00:00:43 -c copy 1.flv

合并flv视频(把文件1.flv和2.flv合并成output.flv)

cat inputs.txt
file '1.flv'
file '2.flv'
ffmpeg -f concat -i inputs.txt -c copy output.flv

查看视频的信息

ffprobe -print_format xml -show_packets input.flv> a.log

ffprobe -print_format xml -show_packets input.flv |grep "codec_type=\"video\"" >a

ffprobe -print_format xml -show_packets input.flv |grep "codec_type=\"audio\"" >b

查看flv文件的信息(包括包数)

ffprobe -show_streams -print_format json  -count_packets  -i audio.flv > 1.json

yamdi 添加信息

yamdi  -w -a 500 -i  input.flv -o dump.flv
<think>我们正在讨论FFmpeg命令的使用方法。根据用户之前的引用和问题,用户需要FFmpeg命令的使用指南。我们可以从基础命令结构讲起,然后介绍常用命令选项,接着给出一些典型应用场景的示例,最后生成相关问题。 注意:用户之前的引用中提到了转码为HLS、多路视频合并、视频参数设置等,这些可以作为示例。 回答结构: 1. FFmpeg命令基本结构 2. 常用命令选项(输入输出、视频参数、音频参数、流选择等) 3. 典型应用场景示例(格式转换、提取音视频、视频合并、HLS切片等) 4. 相关问题 注意:引用内容在适当的地方标注。 </think>### FFmpeg 命令使用指南 FFmpeg 是强大的多媒体处理工具,支持视频/音频编解码、格式转换、流媒体处理等。以下是核心功能详解: #### 一、基础命令结构 ```bash ffmpeg [全局选项] [输入选项] -i 输入文件 [输出选项] 输出文件 ``` - **全局选项**:`-y`(覆盖输出)、`-v loglevel`(日志级别) - **输入/输出选项**:控制编解码、分辨率、帧率等参数[^4] #### 二、核心操作场景 1. **格式转换**(MP4 → MOV) ```bash ffmpeg -i input.mp4 -c:v copy -c:a copy output.mov # 无损拷贝流 ``` 2. **视频转 HLS 直播流** ```bash ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls output.m3u8 ``` - `-f hls`:指定 HLS 格式输出[^1] - `-strict -2`:启用实验性编码器(如 FDK-AAC)[^1] 3. **音视频流选择策略** FFmpeg 默认选择规则: - 视频 → 最高分辨率流 - 音频 → 最多声道数流 - 字幕 → 第一个字幕流[^2] ```bash # 手动选择第2路视频流和第3路音频流 ffmpeg -i input.mkv -map 0:v:1 -map 0:a:2 output.mp4 ``` 4. **多画面拼接(画中画)** ```bash ffmpeg -i top.mp4 -i bottom.mp4 -filter_complex \ "[0:v]scale=640:360[top]; [1:v]scale=640:360[bot]; \ [top][bot]vstack=inputs=2" output.mp4 ``` - `vstack` 垂直拼接 → `hstack` 水平拼接 - 复杂布局参考 `nullsrc` + `overlay` 方案[^3] 5. **关键参数控制** | 选项 | 作用 | 示例值 | |------------|-----------------------|-----------------| | `-b:v` | 视频比特率 | `-b:v 2000k` | | `-r` | 帧率 | `-r 30` | | `-s` | 分辨率 | `-s 1280x720` | | `-vn`/`-an`| 禁用视频/音频流 | `-vn` | | `-ss`/`-t` | 起始时间/持续时间 | `-ss 00:01:30 -t 10` | #### 三、高级应用 1. **硬件加速转码(NVIDIA)** ```bash ffmpeg -hwaccel cuda -i input.mp4 -c:v h264_nvenc output.mp4 ``` 2. **提取关键帧** ```bash ffmpeg -i video.mp4 -vf "select='eq(pict_type,PICT_TYPE_I)'" -vsync 0 keyframes/thumb%03d.jpg ``` 3. **直播推流** ```bash ffmpeg -re -i input.mp4 -c:v libx264 -preset fast -f flv rtmp://server/live/stream ``` #### 四、调试技巧 - **查看媒体信息**:`ffmpeg -i input.mp4` - **测试编解码器**:`ffprobe -show_streams input.mov` - **生成空视频**:`ffmpeg -f lavfi -i testsrc=duration=10:size=1280x720:rate=30 output.mp4`
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值