nad*_*rmx 9 video mp3 mp4 ffmpeg video-conversion
我可以在 ffmpeg 中将 mp4 转换为 mp3,但我不确定如何添加视频的缩略图。
目前有这个从 mp4 转换为 mp3
ffmpeg -i video.mp4 -acodec libmp3lame -metadata title=video -b:a 256 -f input.mp3
Run Code Online (Sandbox Code Playgroud)
然后我是否必须使用此命令再次通过 ffmpeg 运行它?
ffmpeg -i input.mp3 -i cover.jpg -map_metadata 0 -map 0 -map 1 output.mp3
Run Code Online (Sandbox Code Playgroud)
或者有什么方法可以使用复杂的过滤器来实现这是一次运行?
我知道这适用于 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
Run Code Online (Sandbox Code Playgroud)
更好的答案,带有解释,结合了 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
请参阅有关使用 来选择输入流的ffmpeg文档-map,这是此处的相关选项。
我首先简单地运行命令-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))
Run Code Online (Sandbox Code Playgroud)
因此我知道我想要1从索引号为 的文件(0即视频文件)中获取流(aac 音频);因此必须使用 明确选择它-map 0:1 -map 1。
| 归档时间: |
|
| 查看次数: |
2585 次 |
| 最近记录: |