簡體   English   中英

將Webm轉換為音頻文件(fluent-ffmpeg)

[英]Transcode Webm to Audio file (fluent-ffmpeg)

我有一個視頻文件,通過ffprobe命令檢查時,其屬性如下。 我的目的是僅獲取音頻文件,並且其大小不應大於100mb。 在NPM項目中,有什么適當的方法嗎?

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產生“無視頻”的輸出。

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足夠的選項,它將通過查看您給輸出的擴展名來使用最佳猜測。

至於限制文件大小,我不確定采用哪種干凈方法,但是Video Production StackExchange上的此問題可能會有所幫助: 如何使用ffmpeg限制文件大小? 建議您使用比特率,直到獲得所需的大小為止。 我認為您可以提前計算出正確的比特率。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM