ffmpeg用法集锦

ffmpeg简介

FFmpeg 是强大的专用于处理音视频的开源库,包含了先进的音视频编解码库,提供了录制、转换以及流传输音视频的完整跨平台解决方案。既可以使用它的API对音视频进行处理,也可以使用它提供的工具,如 ffmpeg, ffplay, ffprobe,来编辑音视频文件。

主要功能:解码(decode)、编码(encode)、转码(transcode)、复用(mux)、解复用(demux)、流(stream)、过滤(filter)和播放(play)人类和机器创建的几乎所有内容。

几乎支持所有格式:FFmpeg支持最模糊的古代格式直至最前沿。无论是由某些标准委员会、社区还是公司设计的。
跨平台高度可移植性:FFmpeg可以在各种构建环境:机器体系结构和配置下,跨Linux、Mac OS X、Microsoft Windows、BSD、Solaris等编译,运行并通过测试基础架构 FATE。

基本用法

-vcodec copy -acodec copy

ffmpeg -i 新世纪走遍美国cd16.iso -c copy -vcodec copy -acodec copy -bsf:a aac_adtstoasc 16.mp4
ffmpeg -i 新世纪走遍美国cd16.iso -vcodec copy -acodec copy 16.mp4


ffmpeg -i 01.rm -vf subtitles=01.srt -c:v libx264 -strict -2 01.mp4

ffmpeg -i 01.rm -vf subtitles=01.srt 01.mp4

查看视频文件信息

# ffmpeg -i a.MPG 

ffmpeg 添加视频硬字幕

通过ffmpeg在视频流上面加上添加硬字幕,需要使用 subtitles 的滤镜,命令 -vf subtitles=字幕文件名 ,这个操作会对视频重新编码。

使用 subtitles 滤镜为视频添加字幕(将字幕合成到视频流中,输出文件中不含字幕流,硬字幕):
ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4

将 input.mp4 中的字幕(默认)嵌入到 output.mp4 文件:
ffmpeg -i input.mp4 -vf subtitles=input.mp4 output.mp4

将 input.mp4 中的字幕(第二个)嵌入到 output.mp4 文件
ffmpeg -i input.mp4 -vf subtitles=input.mkv:si=1 output.mp4

关于 subtitles 滤镜的详细用法:
http://ffmpeg.org/ffmpeg-all.html#subtitles-1
ass 等字幕格式使用方法一样。

  1. 提取视频 (Extract Video)

ffmpeg -i Life.of.Pi.has.subtitles.mkv -vcodec copy –an videoNoAudioSubtitle.mp4

参考:http://www.cnblogs.com/wainiwann/p/4128154.html

  1. 提取音频(Extract Audio)

ffmpeg -i Life.of.Pi.has.subtitles.mkv -vn -acodec copy audio.ac3

参考:http://stackoverflow.com/questions/9913032/ffmpeg-to-extract-audio-from-video

  1. 提取字幕(Extract Subtitle)

ffmpeg -i Life.of.Pi.has.subtitles.mkv-map 0:s:0 sub1.srt

参考:http://superuser.com/questions/583393/extract-subtitle-from-video

提取字幕

ffmpeg -i video_file.mp4 -map 0:s:0 subtitle.srt

参数含义:

-i video_file.mp4:
input输入文件是video_file.mp4
-map 0:s:0 subtitle.srt的含义:
-map:高级参数
0:s:0:
0 -> input_file_id=文件id,输入的文件索引编号
此处就一个文件,所以0表示此处输入的mp4视频:video_file.mp4
:s -> :stream_specifier, 流stream选择的是字幕subtitle
:0 -> :stream_specifier 第0个字幕
此处只有一个字幕,就是这个唯一的字幕
subtitle.srt:输出的字幕文件名

合并多个视频

直接将多个MP4直接拼接成一个MP4

1、将合并的文件夹都放在同一个文件夹下,例如:test.mp4,test2.mp4
2、新建一个video.txt文件,文件的内容是需要合并的视频名称,内容格式为:

file 'test.mp4'
file 'test2.mp4'

3、执行ffmpeg的命令
ffmpeg -f concat -i video.txt -c copy concat.mp4
执行完之后就可以看到合并起来的视频concat.mp4了。

链接

  • https://link.zhihu.com/?target=https%3A//github.com/FFmpeg/FFmpeg
  • https://crifan.github.io/media_process_ffmpeg/website/

猜你喜欢

转载自blog.csdn.net/jgku/article/details/130411921