原始问题
我希望能够从现有的MP3文件生成一个新的(完全有效的)MP3文件,用作预览 - 先试后买的风格.新文件应仅包含曲目的前n秒.
现在,我知道我可以在传送文件时在n秒(从比特率和标题大小计算)"切断流" ,但这有点脏,并且在VBR轨道上是真正的PITA.我希望能够生成一个合适的MP3文件.
任何想法?
答案
这两个mp3split和ffmpeg都是很好的解决方案.我选择了ffmpeg,因为它通常安装在Linux服务器上,也很容易用于Windows.这里有一些更好的命令行参数,用于使用ffmpeg生成预览
-t <seconds> 在指定的秒数后切断-y 强制文件覆盖-ab <bitrate>设置比特率,例如-ab 96k-ar <rate Hz>设置采样率,例如-ar 22050为22.05kHz-map_meta_data <outfile>:<infile> 将跟踪元数据从infile复制到outfile而不是设置-ab和-ar,您可以像Tim Farley建议的那样复制原始曲目设置:
-acodec copy我有MP3文件,有时最后会沉默.我想自动删除这个沉默.从我所知,它是"完美的"沉默(0幅度),而不是背景噪音.内容的长度和沉默各不相同.
我发现了一些其它问题,有关裁剪至前30秒或裁剪到X和X + N秒使用ffmpeg.我想我可以使用类似的方法,只要我有办法找到沉默开始的时候.我将如何以编程方式执行此操作?
例如,一种可能的解决方案是使用命令找到"沉默"的开始.我期待这样的序列
end=$(ffmpeg some-command-to-find-start-of-silence)
ffmpeg -t "$end" -acodec copy -i inputfile.mp3 outputfile.mp3
Run Code Online (Sandbox Code Playgroud)
该解决方案并没有必须使用ffmpeg,但它确实需要可在Ubuntu上.
我需要通过单词自动分割语音视频,因此每个单词都是一个单独的视频文件.你知道怎么做的吗?
我的计划是检测静音部分并将它们用作单词分隔符.但我没有找到任何工具来做到这一点,看起来像ffmpeg不是正确的工具.
如何限制给定视频的视频持续时间.例如,如果我们上传一个不超过5分钟的视频,我需要FFMPEG中的元数据.你能找到答案.
我知道它复制了一些东西,但除此之外它做了什么(它会影响输出文件的范围)?是开关还是选项?为什么它在单词本身之前没有连字符?
我从其他问题中看到它可以在没有转码的情况下复制流,但是我可以操纵它的其他可能性是什么?
我已经完成ffmpeg --help但我没有看到任何关于它的文档.有网站我可以阅读更多关于它的内容吗?
我正在尝试将 ogg 音频文件转换为 mp3 或其他可以在 ios 设备中播放的音频文件格式,但 ogg 文件没有被转换为其他格式,如 mp3 和 caf。我正在 Android 设备中测试转换。
这是我的 ffmpeg 命令参数:
Command: "ffmpeg -y -i $inputFilePath -c:a copy $outputFilePath"
Both input and output filenames were surrounded with quotations
[-y, -i, /data/user/0/com.musicapp/files/composer_audios/testtt ogg file.ogg, -c:a, copy, /storage/emulated/0/Android/data/com.musicapp/files/ball.mp3]
Run Code Online (Sandbox Code Playgroud)
当我尝试转换为 mp3 时。抛出此错误:
FFmpeg exited with rc: 1
[mp3 @ 0x73f7b36a00] Invalid audio stream. Exactly one MP3 audio stream is required.
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Run Code Online (Sandbox Code Playgroud)
当我尝试转换为 .caf 文件时,会抛出此错误: …