当前位置: 首页 > 知识库问答 >
问题:

从视频文件中提取的音频太大

慕容安易
2023-03-14

我正在尝试从视频文件中提取音频。我试过python中的moviepy、ffmpeg等库。提取的音频文件太大。对于大小为75 MB的音频文件,音频文件与moviepy的距离约为1.1 GB。即使比特率为16 kbps,采样率为16000 Hz,提取的文件大小也将达到200 MB。任何其他库或提取的音频文件大小至少相同或小于完整视频文件的方式。

'ffmpeg -i trial_copy.mp4 -ac 1 -ab 16000 -ar 16000 output.wav'

我正在ffmpeg中使用上述命令。

共有3个答案

宇文鸿振
2023-03-14

尝试使用它,https://sourceforge.net/projects/gmkvextractgui/

ffmpeg-i试用版。mp4-f s16le-ar 16000输出。wav

和魁
2023-03-14

ffmpeg应安装程序ffprobe,该程序可提供有关电影文件中音频所用文件格式的信息。

ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "trial_copy.mp4"

例如,opus

然后它可以用来从文件中复制音频而无需转换格式

ffmpeg -v error -i "trial_copy.mp4" -vn -acodec copy "trial_copy.opus"

我将其用作名为ffextract\u audio的bash脚本

#!/bin/bash

# get codec name / audio file extension
# -v error 
#       : without extra info
# -select_streams a:0  
#       : check only audio stream
# -show_entries stream=codec_name  
#       : get codec_name
# -of default=noprint_wrappers=1:nokey=1 
#       : remove key name and wrappers 
# -i "$1"
#       : input file    
EXT=$(ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "$1")
BASE=${1%.*}

echo output: $BASE.$EXT 

# extract audio from $1 and save in $2
# -v error 
#       : without extra info
# -i "$1"
#       : input file
# -vn
#       : without video
# -acodec copy
#       : copy audio (doesn't change codec)
# "$1.$EXT"
#       : output file with extra extension
ffmpeg -v error  -i "$1" -vn -acodec copy "$BASE.$EXT"

使用

ffextrac_audio trial_copy.mp4

我可以得到ie。

trial_copy.opus
贲永思
2023-03-14

从视频文件中提取的音频太大

您正在输出WAV。这是未压缩的,因此它将忽略您的比特率(-ab),并将创建比输入中压缩音频更大的文件。请参阅Wav音频文件压缩不工作。

任何其他库或提取的音频文件大小至少相同或小于完整视频文件的方式。

您可以使用流复制模式-c复制)提取音频而无需重新编码:

ffmpeg -i input.mp4 -map 0:a -c copy output.m4a

文件大小将是相同的,因为您基本上只是复制和粘贴音频(重新muxing)。

 类似资料:
  • 使用Camtasia创建的视频可以通过导出TechSmith智能播放器的项目在网络上共享。该视频以“H264-MPEG-4 AVC(part10)(avc1)”编解码器导出,导出还包括TechSmith智能播放器使用的其他自定义XML、JavaScript和SWF文件。 这些自定义文件也会“烧录”到视频中。例如,在文本编辑器中打开MP4视频时,可以查看XML文件的内容。这允许其他服务在上传Camt

  • 我想从视频中提取对齐的音频流。目标是获得与视频精确对齐的音频序列。 问题:视频和音频序列不对齐。输出音频持续时间比视频输入短。 要复制的脚本: 我的尝试(没有成功): 按照此答案中的建议添加 添加,同时导出视频(链接) 在Audacity中打开。那里的持续时间是 在VLC中打开。持续时间: 显式设置帧率 其他视频文件 如果能给我一些建议,我将不胜感激。非常感谢。

  • 如果一些文件是带音频的视频,而一些文件只是音频,是否可以连接多个文件。最终结果应该如下所示: 我认为这一定是可能的,因为我也可以结合一个大的音频文件和一个小的视频与FFMPEG。结果将是一个视频文件,其中最后一帧只是冻结,但音频仍然播放。我想实现相同的结果,要么冻结最后一帧或简单的黑色帧。这可能吗?

  • 我的音乐应用程序从外部应用程序启动,使用意向数据作为音乐文件。 我有mp3音频URI,类似这样 file:///storage/emulated/0/Music/Tamil/I(2014)/Ennodu Nee Irundhaal。mp3 如何从媒体获取音频详细信息。标题,媒体。相册,媒体_身份证件

  • 我正在使用AVPlayer播放HLS流。当用户按下录制按钮时,我还需要录制这些流。我使用的方法是分别录制音频和视频,然后在最后合并这些文件以制作最终视频。远程mp4文件是成功的。 但是现在对于HLS(.m3u8)文件,我可以使用AVAssetWriter录制视频,但音频录制有问题。 我正在使用MTAudioProccessingTap处理原始音频数据并将其写入文件。我遵循了这篇文章。我能够录制远程

  • 我想从给定的输入视频文件中拆分和。在网上冲浪后,我了解到使用是可能的。我打算在中实现上述功能。在ffmpeg中有很多构建过程,所以我更喜欢或任何其他可用的包。请任何人指导我如何使用或任何其他可用的框架来实现这些概念。 给定的输入视频文件(包含音频和视频) 预期的输出视频文件(只包含视频而不包含音频)