将Webm转换为音频文件(流畅的ffmpeg) [英] Transcode Webm to Audio file (fluent-ffmpeg)

查看:2824
本文介绍了将Webm转换为音频文件(流畅的ffmpeg)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我通过ffprobe命令检查时,我有一个视频文件,其属性如下:
我的目的是仅使用音频文件,其大小不应大于100mb。
在NPM项目中是否有正确的方法?

I have a video file and its properties are as the following when I check via the ffprobe command; My purpose is to take the audio file only and its size should not be >100mb. Is there any proper way of doing it in an NPM project?

ffprobe 2.webm
ffprobe version N-86175-g64ea4d1 Copyright (c) 2007-2017 the FFmpeg 
developers built with gcc 6.3.0 (GCC)   configuration: --enable-gpl -- 
nable-version3 --enable-cuda --enable-cuvid --enable-d3d11va --enable-dxva2 
--
nable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable- 
ontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --
 nable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype -- 
nable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-
ibmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-
ibopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-
ibsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-
ibtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --
nable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-
ibx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --
nable-zlib   libavutil      55. 63.100 / 55. 63.100   libavcodec     57. 
96.101   
7. 96.101
libavformat    57. 72.101 / 57. 72.101
libavdevice    57.  7.100 / 57.  7.100
libavfilter     6. 90.100 /  6. 90.100
libswscale      4.  7.101 /  4.  7.101
libswresample   2.  8.100 /  2.  8.100
libpostproc    54.  6.100 / 54.  6.100
Input #0, matroska,webm, from '2.webm':
 Metadata:
  encoder         : libwebm-0.2.1.0
  creation_time   : 2017-05-04T14:59:01.639000Z
 Duration: 00:02:35.16, start: 0.000000, bitrate: 32 kb/s
Stream #0:0(eng): Audio: opus, 48000 Hz, mono, fltp (default)
Stream #0:1(eng): Video: vp8, yuv420p(progressive), 640x480, SAR 1:1 DAR 
4:3, 14.99 tbr, 1k tbn, 1k tbc (default)


推荐答案

使用 fluent-ffmpeg 的API



您可以使用 noVideo() 方法告诉 ffmpeg 以无视频生成输出。

Using fluent-ffmpeg's API

You could use the noVideo() method which tells ffmpeg to produce output with "no video".

ffmpeg('/path/to/file.avi').noVideo();



使用 ffmpeg 的CLI API < h2>

我不确定 fluent-ffmpeg ,但使用 ffmpeg ,您将使用 -map 选项来指定你想要的流,你输出中的输入。所以,对于你的例子,得到一个只包含输入的第一个音频流的MP3文件的命令是:

Using ffmpeg's CLI API

I'm not sure of fluent-ffmpeg, but using ffmpeg, you would use the -map option to dictate what streams you want from you inputs in your output. So for your example, the command to get an MP3 file that contains only the first audio stream from your input would be:

ffmpeg -i 2.webm -map 0:a:0 out.mp3

或者,你可以告诉ffmpeg不包括使用 -vn 选项的视频流;但我喜欢很明确。您的命令将是:

Alternatively, you could tell ffmpeg to not include video streams using the -vn option; but I like to be explicit. Your command would then be:

ffmpeg -i 2.webm -vn out.mp3

您还可以使用 -acodec 选项来指定要使用的编码器,如AAC或其他。如果您没有给出足够的选项,ffmpeg将通过查看您输出的扩展名来最好的猜测。

You can also use the -acodec option to dictate what encoder you want to use such as AAC or whatever. ffmpeg will use the best guess by looking at the extension you gave your output if you don't give it enough options.

关于限制文件大小,我不确定一个干净的方式来做,但这个问题在视频制作StackExchange可能有帮助:如何使用ffmpeg来限制文件大小?它建议玩你的比特率,直到你得到你想要的大小。我会假设你可以提前计算正确的比特率。

As to limiting filesize, I'm not sure of a clean way to do that, but this question on the Video Production StackExchange may help: How to limit file size with ffmpeg?. It suggests playing with your bitrate until you get the size you want. I would assume you could calculate correct bitrate ahead of time.

这篇关于将Webm转换为音频文件(流畅的ffmpeg)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆