ffmpeg:
-
FFmpeg是一个开源的多媒体框架,提供了处理音频、视频和流媒体的工具和库。
-
它可以用于各种音视频处理任务,如转码、解码、编码、剪辑、合并等。
-
FFmpeg可以通过命令行或API进行使用。
-
示例命令:
- 转码视频:
ffmpeg -i input.mp4 output.avi - 提取音频:
ffmpeg -i input.mp4 -vn output.mp3 - 转码音频:
ffmpeg -i input.wav -acodec mp3 output.mp3 - 截取视频:
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 output.mp4 - 更多使用方式和选项,请参考FFmpeg的官方文档。
- 转码视频:
-
【常见用例】
-
ffmpeg -i input.wav -c copy output.wav
- 在上述命令中,
input.wav是输入音频文件的路径,output.wav是要输出到的文件路径。 - 通过
-c copy参数,它将以无损复制的方式将音频流从输入文件复制到输出文件。
- 在上述命令中,
-
ffmpeg -f s16le -ar 44100 -ac 2 -i input.bin output.wav
- 上述命令中的
input.bin是你的音频.bin文件的输入文件名, output.wav是你希望生成的输出音频文件名(可以自定义文件名和格式)。- 这里假设音频采样率为 44100 Hz,声道数为 2(立体声),
- 采样格式为有符号 16 位小端字节顺序(s16le)。
- 上述命令中的
-
ffmpeg -i input_file
- 查看音频流信息:使用以下命令查看音频流的信息
-
ffmpeg -i input_file -acodec pcm_s16le output_file.wav
- 解码音频流:使用以下命令解码音频流
- 此命令将音频流解码为无损的 PCM (pulse-code modulation) 格式
-
ffmpeg -i input.mp4 output.avi
- 转码视频
-
ffmpeg -i input.mp4 -vn output.mp3
- 提取音频
-
ffmpeg -i input.wav -acodec mp3 output.mp3- 转码音频
-
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 output.mp4- 截取视频
- 尝试使用
-ss参数来指定要提取的音频的开始时间 - 以及使用
-t参数来指定要提取的音频的持续时间
-
ffmpeg -i input.g726 -acodec pcm_s16le -ar 44100 output.wav
- 将 G.726 编码的音频解码为原始音频数据
-i input.g726:指定输入文件为input.g726,即 G.726 编码的音频文件。-acodec pcm_s16le:指定音频编解码器为pcm_s16le,这是一个无损线性 PCM 格式,16位采样。-ar 44100:指定音频采样率为 44100 Hz,即标准的 CD 音质采样率。output.wav:指定输出文件名为output.wav,即解码后的原始音频数据保存为 WAV 格式文件。
-
ffmpeg -i input.mov -vn -acodec copy output.aac
- 要提取一个
.mov文件中的音频流 -i input.mov:指定输入文件为input.mov,即.mov格式的视频文件。-vn:禁用视频流,只处理音频流。-acodec copy:指定音频编解码器为copy,表示直接复制音频流而不进行重新编码。output.aac:指定输出文件名为output.aac,即提取的音频流保存为 AAC 格式文件。
- 要提取一个
-
ffmpeg -i input.mov -map 0:a -c:a copy output.wav
- 将
.mov文件中的pcm_s16le音频流提取出来并保存为音频文件 - 使用
-map参数选择了输入文件的音频流,并使用-c:a copy参数进行音频流的复制 pcm_s16le是无损音频编码格式,直接复制即可将其提取出来
- 将
-
ffmpeg -i input.mov -map 0:a -c:a pcm_s16le output.wav
- 要将
.mov文件中的音频流提取为 LPCM 格式
- 要将
-
ffplay:
-
ffplay是FFmpeg提供的一个简单的媒体播放器。
-
它可以播放各种音频和视频文件,并提供基本的播放控制功能。
-
示例命令:
- 播放视频:
ffplay input.mp4 - 播放音频:
ffplay input.mp3 - 指定起始时间播放:
ffplay -ss 00:00:10 input.mp4 - 更多使用方式和选项,请参考FFmpeg的官方文档。
- 播放视频:
-
【常见用例】
-
ffplay -f g726 input.g726- 使用FFplay通过命令行来播放
.g726音频文件
- 使用FFplay通过命令行来播放
-
ffplay -f s16le -ar 44100 -ac 2 -i audio.raw
-
播放原始音频数据
-
-f s16le:指定音频数据的格式为有符号 16 位小端格式。 -
-ar 44100:指定音频数据的采样率为 44100 Hz。 -
-ac 2:指定音频数据的声道数为 2(立体声)。 -
-i audio.raw:指定输入的音频文件为audio.raw,这里假设音频文件为原始 PCM 数据。
-
-
ffprobe:
-
ffprobe是FFmpeg的一个工具,用于分析音视频文件的元数据和技术细节。
-
它可以提供有关输入文件的详细信息,如帧率、分辨率、编码格式、码率等。
-
【可选参数】
-show_format:显示多媒体文件的格式信息,包括文件名、时长、比特率等。-show_streams:显示多媒体文件的流信息,包括视频流、音频流、字幕流等,以及每个流的详细信息。-show_packets:显示多媒体文件中的数据包信息,包括每个数据包的时刻、大小、持续时间等。-show_frames:显示多媒体文件中的帧信息,包括每个帧的时刻、类型、位置等。-show_programs:显示多媒体文件中的节目信息,包括节目编号、标题、描述等。-show_chapters:显示多媒体文件中的章节信息,包括章节编号、开始时间、结束时间等。-show_versions:显示FFmpeg和相关库的版本信息。-show_data:显示多媒体文件中的数据信息,包括每个流的数据大小、平均比特率等。-of xml:选项可以方便地将ffprobe的输出结果保存为XML文件
-
【属性解释】
media_type="audio":表示该帧是音频帧。stream_index="1":表示该音频帧所属的音频流的索引。key_frame="1":表示该音频帧是关键帧。pts="7360"和pts_time="0.920000":表示该音频帧的显示时间戳(Presentation Timestamp)以及以秒为单位的显示时间。pkt_dts="7360"和pkt_dts_time="0.920000":表示该音频帧的解码时间戳(Decoding Timestamp)以及以秒为单位的解码时间。best_effort_timestamp="7360"和best_effort_timestamp_time="0.920000":表示该音频帧的最佳估计时间戳以及以秒为单位的最佳估计时间。pkt_duration="320"和pkt_duration_time="0.040000":表示该音频帧的持续时间以及以秒为单位的持续时间。duration="320"和duration_time="0.040000":表示该音频帧的总时长以及以秒为单位的总时长。pkt_pos="163801":表示该音频帧在媒体文件中的位置(字节偏移)。pkt_size="640":表示该音频帧的数据包大小(字节数)。sample_fmt="s16":表示该音频帧的采样格式为有符号 16 位整数(signed 16-bit)。nb_samples="160":表示该音频帧中的采样点数量。channels="2":表示该音频帧的声道数量。channel_layout="stereo":表示该音频帧的声道布局为立体声。
-
【常见用例】
-
显示每一帧的信息:ffprobe -show_frames input_file
-
显示文件信息:
ffprobe input.mp4 -
显示所有流信息:
ffprobe -show_streams input.mp4 -
显示音频流信息:
ffprobe -show_streams -select_streams a input.mp4 -
显示视频流信息:
ffprobe -show_streams -select_streams v input.mp4 -
ffprobe -of json -i input.mp4
- 要以 JSON 格式输出信息
-