如何通过 FFmpeg 从所有格式中删除所有元数据?
我可以为每个man ffmpeg 的每个格式设置特殊的元数据。任何清除所有元数据并从 ffmpeg 上可用的所有元数据中剥离媒体的选项或方法?
-metadata key=value
Set a metadata key/value pair.
For example, for setting the title in the output file:
ffmpeg -i in.avi -metadata title="my title" out.flv
Run Code Online (Sandbox Code Playgroud) 我想使用 h.264 编解码器将 AVI 文件压缩为 MP4。我无法获得相同的质量。我怎样才能压缩它?
原始视频屏幕:

FFmpeg 控制台输出 ( ffmpeg -i input.avi):
FFmpeg version SVN-r26402, Copyright (c) 2000-2011 the FFmpeg developers
built on Dec 28 2012 10:03:40 with gcc 4.4.6 20120305 (Red Hat 4.4.6-4)
configuration: --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-pthreads --enable-x11grab --enable-libopencore-amrnb --enable-libopenc ore-amrwb --enable-libdc1394 --enable-libfaac --enable-libmp3lame --enable-libop enjpeg --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-zlib --enable-filter=drawtext
libavutil 50.36. 0 / 50.36. 0
libavcore 0.16. 1 / 0.16. 1
libavcodec 52.108. 0 / 52.108. 0
libavformat 52.93. 0 …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令获取视频的分辨率:
ffmpeg -i filename.mp4
Run Code Online (Sandbox Code Playgroud)
我得到了很长的输出,但我只需要 bash 脚本的宽度和高度。我应该如何过滤掉这些参数?也许有更好的方法来做到这一点。
我有一个包含以下媒体信息的 mov 文件:
Stream 0
Type: Video
Codec: H264-MPEG-4 AVC (part 10)avc1
Language: English
Resolution: 1280x720
Frame rate: 24
Stream 1
Type: Audio
Codec: MPEG AAC Audio (mp4a)
Language: English
Channels: Stereo
Sample rate: 44100HZ
Run Code Online (Sandbox Code Playgroud)
我想使用 FFmpeg 将该 MOV 文件转换为 AVI 文件。
我知道我可以指定音频和视频比特率(来自本文):
ffmpeg -i InputFile.mpg -ab 128 -b 1200 OutputFile.avi
Run Code Online (Sandbox Code Playgroud)
但就我而言,如果我想保持原始质量,我的音频和视频比特率应该是多少?
我想使用 FFMPEG 将多个 WAV 文件连接成一个 WAV 文件。
我使用了以下命令,它生成了所需的文件。
命令:
ffmpeg -f concat -i mylist.txt -c copy output.wav
Run Code Online (Sandbox Code Playgroud)
文件 :
#mylist.txt
file '1.wav'
file '2.wav'
file '3.wav'
file '4.wav'
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,问题是我必须创建一个文本文件来指定要连接的 WAV 文件列表。
我可以完成所有这些任务,但我更喜欢一个看起来像的命令
ffmpeg -i 1.wav -i 2.wav -i 3.wav -i 4.wav output.wav
Run Code Online (Sandbox Code Playgroud)
或者
ffmpeg -i "concat:1.wav|2.wav|3.wav|4.wav" -c copy output.wav
Run Code Online (Sandbox Code Playgroud)
我已经尝试了这两个简单的命令,但它们只返回“1.wav
请帮我写一个命令(或更正上述 2 个命令)”的声音,以达到预期的结果。
请不要推荐其他媒体编码器/编辑器,我只想使用 FFMPEG,因为它已经在其他地方安装和使用。
在调节用于 DASH 播放的流时,随机访问点必须在所有流中的源流时间完全相同。执行此操作的常用方法是强制固定帧速率和固定 GOP 长度(即每 N 帧一个关键帧)。
在 FFmpeg 中,固定帧速率很容易(-r NUMBER)。
但是对于固定的关键帧位置(GOP 长度),有三种方法……哪一种是“正确的”?FFmpeg 文档对此非常含糊。
-c:v libx264 -x264opts keyint=GOPSIZE:min-keyint=GOPSIZE:scenecut=-1
Run Code Online (Sandbox Code Playgroud)
是否应该关闭场景切换似乎存在一些争论,因为当场景切换发生时关键帧“计数器”是否重新启动尚不清楚。
-g GOP_LEN_IN_FRAMES
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只是在 FFMPEG 文档中顺便记录,因此这个论点的效果非常不清楚。
-force_key_frames expr:gte(t,n_forced*GOP_LEN_IN_SECONDS)
Run Code Online (Sandbox Code Playgroud)
这是明确记录的。但是,“时间计数器”是否在每个关键帧后都重新启动,目前还不清楚。例如,在预期的 5 秒 GOP 中,如果scenecutlibx264 在 3 秒内注入了一个关键帧,那么下一个关键帧是 5 秒后还是 2 秒后?
事实上,FFmpeg 文档区分了这个和-g选项,但它并没有真正说明上面的这两个选项有何不同(显然,-g将需要固定的帧速率)。
看起来-force_key_frames会更好,因为它不需要固定的帧速率。然而,这要求
scenecut关键帧。如果-g不强制固定帧速率 ( …
我试图从视频中提取字幕作为.srt文件,我使用了以下命令:
FFMPEG -i mytestmovie.mkv -vn -an -codec:s:0.1 srt sub.srt
Run Code Online (Sandbox Code Playgroud)
但是,我收到了一个错误为无法识别的选项codec:s:0:1
那么,你能告诉我确切的命令以及如何.srt在视频中将字幕提取为文件吗?
我从视频文件中提取音频剪辑以进行语音识别。这些视频来自移动/其他手工设备,因此包含大量噪音。我想降低音频的背景噪音,以便我传递给语音识别引擎的语音清晰。我正在使用 ffmpeg 来完成所有这些工作,但我仍停留在降噪阶段。
到目前为止,我已经尝试过以下过滤器:
ffmpeg-20140324-git-63dbba6-win64-static\bin>ffmpeg -i i nput.wav -filter_complex "highpass=f=400,lowpass=f=1800" out2.wav
ffmpeg -i i nput.wav -af "equalizer=f=1000:width_type=h:width=900:g=-10" output.wav
ffmpeg -i i nput.wav -af "bandreject=f=1200:width_type=h:width=900:g=-10" output.wav
Run Code Online (Sandbox Code Playgroud)
但结果非常令人失望。我的理由是,由于语音低于 300-3000 Hz 范围,我可以过滤掉所有其他频率以抑制任何背景噪音。我错过了什么?
此外,我阅读了有关可用于语音增强的韦纳过滤器并发现了这一点,但我不确定如何使用它。
我正在尝试使用 FFmpeg 为视频添加声音,但出于某种原因,当我播放生成的文件时,它没有任何声音。我还尝试使用 aac 音频文件来做它,以及省略-acodec copy并给它一个 wav 文件。
这是完整的输出:
C:\Users\SM-Audio\Desktop>ffmpeg -i PrintingCDs.mp4 -i AudioPrintCDs.mp3 -acodec
copy -vcodec copy PrintCDs1.mp4
ffmpeg version N-48886-g5ce023b Copyright (c) 2000-2013 the FFmpeg developers
built on Jan 14 2013 19:16:33 with gcc 4.7.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-av
isynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enab
le-libass --enable-libbluray --enable-libcaca --enable-libfreetype --enable-libg
sm --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --e
nable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --e
nable-libspeex --enable-libtheora --enable-libtwolame --enable-libvo-aacenc --en
able-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable
-libxavs --enable-libxvid --enable-zlib --enable-filter=frei0r …Run Code Online (Sandbox Code Playgroud) Opus 音频编解码器看起来是迄今为止压缩音频的最佳编解码器。它最近在最新的 ffmpeg 和 VLC 播放器中得到支持。但是,我找不到有关如何使用它实际编码媒体的文档。有人可以将我引导到上述文档,最好详细说明 ffmpeg 标志和用法吗?我有很多有声读物占用了太多空间,Opus 看起来是保存它们的完美格式。