应用实践 | 📅 2020-09-20 | ffmpeg
A complete, cross-platform solution to record, convert and stream audio and video.
Github: https://github.com/FFmpeg/FFmpeg
下述一些简单操作,如果需要比较精细的配置或者其他操作,请自行参阅文档:https://ffmpeg.org/documentation.html
若源文件数量较少,则直接使用命令进行合并
ffmpeg -i "concat:file1.mp4|file2.mp4|..." -c copy output.mp4
这样使用单行命令进行合并,将在当前工作目录产生 output.mp4
文件
如果有非常大量的音频或者视频文件,则可以使用这个方法:
首先,将待合并的文件路径写入文本文件,比如说,
创建 filelist.txt
文件,内容格式如下:
file '/path/to/file1.mp4'
file '/path/to/file2.mp4'
file '/path/to/file3.mp4'
然后使用下述命令进行合并:
ffmpeg -f concat -i filelist.txt -c copy output.mp4
需要注意的是,上述文件内若使用相对路径,则应是相对于 filelist.txt
文件的路径,而非相对于 ffmpeg
。
转码的话,很简单:
ffmpeg -i source.ts output.mp4
如果直播有 rtmp 地址,那么可以简单的使用下述命令:
ffmpeg -i rtmp://xxx.xxx.xxxx/ -c copy output.ts
将直播流输出到 output.ts
。这个命令会一直运行直到直播结束。
结束后,会获得从录制开始之时到直播结束的完整视频。
需要注意的是,这个命令可以中断,将会获得一个没有文件尾的输出文件。但是输出文件依然可以被 ffmpeg
转码,但是会获得一个警告。