我有一个视频文件,当我通过ffprobe命令检查时,它的属性如下所示; 我的目的是仅采用音频文件,其大小不应超过100mb。 在NPM项目中有没有正确的方法呢?
perms :: [a] -> [[a]]
perms [] = [[]]
perms [a] = [[a]]
perms [a,b] = [[a,b],[b,a]]
perms xs = concatMap f [0..length xs - 1] where
f i = map ((xs!!i):) $ perms $ exclude i xs
exclude n xs = take (n) xs ++ drop (n+1) xs
答案 0 :(得分:2)
fluent-ffmpeg
的API 您可以使用noVideo()
方法告诉ffmpeg
使用“无视频”生成输出。
ffmpeg('/path/to/file.avi').noVideo();
ffmpeg
的CLI API 我不确定fluent-ffmpeg
,但使用ffmpeg
,您可以使用-map
选项来指示输出中您想要输入的内容。因此,对于您的示例,获取仅包含来自输入的第一个音频流的MP3文件的命令将是:
ffmpeg -i 2.webm -map 0:a:0 out.mp3
或者,您可以使用-vn
选项告诉ffmpeg不包含视频流;但我喜欢说清楚。那么你的命令就是:
ffmpeg -i 2.webm -vn out.mp3
您还可以使用-acodec
选项来指定要使用的编码器,例如AAC或其他任何编码器。如果您没有给出足够的选项,ffmpeg会通过查看您给出的扩展名来使用最佳猜测。
至于限制文件大小,我不确定这样做的干净方法,但视频制作StackExchange上的这个问题可能会有所帮助:How to limit file size with ffmpeg?。它建议你玩你的比特率,直到你得到你想要的大小。我想你可以提前计算出正确的比特率。