标签: ffmpeg

使用 FFmpeg 从所有格式中剥离元数据

如何通过 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)

metadata ffmpeg

57
推荐指数
4
解决办法
14万
查看次数

将 AVI (Xvid) 转换为 MP4 (H.264) 保持相同的质量

我想使用 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)

h.264 ffmpeg video-conversion video-encoding

56
推荐指数
1
解决办法
17万
查看次数

如何使用 ffmpeg 获取视频分辨率?

我正在尝试使用以下命令获取视频的分辨率:

ffmpeg -i filename.mp4
Run Code Online (Sandbox Code Playgroud)

我得到了很长的输出,但我只需要 bash 脚本的宽度和高度。我应该如何过滤掉这些参数?也许有更好的方法来做到这一点。

video metadata ffmpeg

56
推荐指数
3
解决办法
7万
查看次数

如何指定音频和视频比特率

我有一个包含以下媒体信息的 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 bitrate video-encoding

55
推荐指数
1
解决办法
16万
查看次数

使用单个命令连接多个 WAV 文件,无需额外文件

我想使用 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,因为它已经在其他地方安装和使用。

ffmpeg combine wav concatenation

55
推荐指数
4
解决办法
7万
查看次数

在 FFmpeg 中为 DASH 修复关键帧的正确方法是什么?

在调节用于 DASH 播放的流时,随机访问点必须在所有流中的源流时间完全相同。执行此操作的常用方法是强制固定帧速率和固定 GOP 长度(即每 N 帧一个关键帧)。

在 FFmpeg 中,固定帧速率很容易(-r NUMBER)。

但是对于固定的关键帧位置(GOP 长度),有三种方法……哪一种是“正确的”?FFmpeg 文档对此非常含糊。

方法 1:弄乱 libx264 的参数

-c:v libx264 -x264opts keyint=GOPSIZE:min-keyint=GOPSIZE:scenecut=-1
Run Code Online (Sandbox Code Playgroud)

是否应该关闭场景切换似乎存在一些争论,因为当场景切换发生时关键帧“计数器”是否重新启动尚不清楚。

方法二:设置固定GOP大小:

-g GOP_LEN_IN_FRAMES
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只是在 FFMPEG 文档中顺便记录,因此这个论点的效果非常不清楚。

方法 3:每 N 秒插入一个关键帧(可能?):

-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会更好,因为它不需要固定的帧速率。然而,这要求

  • 它符合 H.264 中的 GOP 规范(如果有
  • 它保证会有一个固定节奏的关键帧,而不管 libx264scenecut关键帧。

如果-g不强制固定帧速率 ( …

video ffmpeg streaming video-conversion

54
推荐指数
4
解决办法
10万
查看次数

如何使用ffmpeg从视频中提取字幕?

我试图从视频中提取字幕作为.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 extract subtitles

53
推荐指数
4
解决办法
10万
查看次数

使用 ffmpeg 减少背景噪音并优化音频剪辑中的语音

我从视频文件中提取音频剪辑以进行语音识别。这些视频来自移动/其他手工设备,因此包含大量噪音。我想降低音频的背景噪音,以便我传递给语音识别引擎的语音清晰。我正在使用 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 范围,我可以过滤掉所有其他频率以抑制任何背景噪音。我错过了什么?

此外,我阅读了有关可用于语音增强的韦纳过滤器并发现了这一点,但我不确定如何使用它。

audio noise voice speech-recognition ffmpeg

52
推荐指数
5
解决办法
6万
查看次数

使用 FFmpeg 将音频添加到视频

我正在尝试使用 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)

audio video ffmpeg

51
推荐指数
1
解决办法
9万
查看次数

如何使用 Opus 编解码器对音频进行编码?

Opus 音频编解码器看起来是迄今为止压缩音频的最佳编解码器。它最近在最新的 ffmpeg 和 VLC 播放器中得到支持。但是,我找不到有关如何使用它实际编码媒体的文档。有人可以将我引导到上述文档,最好详细说明 ffmpeg 标志和用法吗?我有很多有声读物占用了太多空间,Opus 看起来是保存它们的完美格式。

audio vlc-media-player encoding ffmpeg

49
推荐指数
2
解决办法
9万
查看次数