我可以在 ffmpeg 中将 mp4 转换为 mp3,但我不确定如何添加视频缩略图。
目前有这个从 mp4 转换为 mp3
ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3
我是否必须使用此命令再次通过 ffmpeg 运行它?
ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3
或者有什么办法可以使用复杂的过滤器来实现这一运行?
我知道这适用于 FLV,但似乎不适用于 mp4
ffmpeg -i video.flv -i cover.jpg -map 0:a -map 1 -c:v copy -metadata title=video -b:a 256k out.mp3
答案1
更好的答案,并附有解释,结合了 slhck 和 Mulvya 的智能建议,删除了非必要参数。
ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -b:a 256k -c:v copy -map 0:a:0 -map 1:v:0 output.mp3
ffmpeg
音频/视频处理工具:已被OP选定,它特别适合这项工作。
-i video.mp4
第一个输入文件:一个包含我们想要提取的音频的视频。
-i cover.jpg
第二个输入文件,我们希望在播放生成的音频文件时显示的图像。
-acodec libmp3lame
我们想使用 LAME 编码器创建一个 .mp3 文件。
-b:a 256k
这会将音轨的比特率设置为恒定的 256Kb/s。更明智的选择是使用可变比特率进行编码,指定质量参数:-q:a 0
要求最高质量,同时-q:a 4
通常代表感知音频质量和比特率(以及文件大小)之间的良好折衷。
-c:v copy
这表示视频流(.jpg 图像)无需重新编码,但必须按原样复制。这对于避免在重新编码为有损格式时进行不必要的处理和潜在的质量损失非常有用。在我们的例子中,如果没有此参数,图像将从 .jpg 解码并编码为 .png,这显然是默认选择的本机格式。这不会造成质量损失,因为 .png 是无损的,但通常会导致文件大小增加,因为 .jpg(有损)通常提供更好的压缩率。
-map 0:a:0
这将从第一个()输入文件中选择要使用的流0:
:它必须是它包含的第一个(:0
)音频(a
)流。
-map 1:v:0
这将从第二个()输入文件中选择第一个(:0
)视频( )流。v
1:
output.mp3
这个参数的名称是经过精心选择的,以便已经暗示这必须是我们想要创建的包含图像的输出音频(.mp3)文件的名称。
原始答案
这将把我婚礼上的视频(.mp4)和照片(.jpg)放在一起,创建一个带有静态图像的音频(.mp3)文件:
ffmpeg -i video.mp4 -i cover.jpg -acodec libmp3lame -metadata title=video -b:a 256k -map_metadata 0 -map 0:1 -map 1 output.mp3
查看 ffmpeg文档选择输入流-map
,这是此处的相关选项。
我首先使用 simply 运行命令-map 0 -map 1
并得到以下信息:
Stream mapping:
Stream #0:0 -> #0:0 (h264 (native) -> png (native))
Stream #0:1 -> #0:1 (aac (native) -> mp3 (libmp3lame))
Stream #1:0 -> #0:2 (mjpeg (native) -> png (native))
因此我知道我想要1
从索引号为 的文件0
(即视频文件)中获取流(aac 音频);因此必须用 明确选择它-map 0:1 -map 1
。
答案2
您可以使用 vlc 媒体播放器 -
步骤 1:打开 VLC 并选择“媒体”。单击转换/保存。
第 2 步:在出现的下一个窗口中,选择“添加”并选择要转换的视频文件(MP4)。
步骤3:接下来,单击“转换/保存”上的向下箭头,然后单击“转换”。
步骤 4:在出现的下一个窗口中,确保已选择“转换”按钮。继续选择要创建的音频文件类型。在我们的例子中,我们要转换为 MP3 文件。
步骤 5:选择输出目标,然后按“开始”。VLC 将开始转换。
对于添加缩略图你可以参考这个关联(解释得很好)。
答案3
要将视频转换为 mp3,请使用自动地缩略图来自视频.使用下面的命令。
简单的方法。
ffmpeg -i video.mp4 -map 0:a:0 -map 0:v:0 out.mp3
选项-map
一使用:0
第一个输入文件 ( ) 中的第一个音频 ( ) 0:
;-map
选项二使用第一个输入文件的第一个视频 (缩略图)。
有关此内容的更多信息,请参阅Simlev 的回答。
特定的时间。
要在视频特定时间制作屏幕截图/缩略图,请使用-ss
与另一个相同视频输入的选项。
ffmpeg -ss 00:15 -i video.mp4 -i video.mp4 -map 1:a:0 -map 0:v:0 out.mp3
这将在 0 分 15 秒处捕获视频截图,用于0:
带有(视频或截图或缩略图)的地图。
第二个视频输入用于1:
带有音频的地图。