我有一个包含以下媒体信息的 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)
但就我而言,如果我想保持原始质量,我的音频和视频比特率应该是多少?
当某个文件(mp4、flv 等)具有 95 kbps 的音频比特率时 - 在转换为 mp3 或其他格式(无论是否有损)时输出更高的比特率是否有意义?
这会导致更高的音频质量还是只是更大的文件?
经过大量答案+评论后的编辑:
我不是在谈论比输入质量更好的输出:显然,这是不可能的。(除了从无损格式到原始波形。)我是说比特率高于输入的输出是否会比其他情况下具有更好的质量。
请注意,我知道不建议在有损格式之间进行转换。只是在某些情况下原始 cd/wave 可能不可用。问题只是关于在转换时可选地增加比特率的有用性。
也许一个子问题很有用:答案是否取决于输出文件的类型(无损或有损)?
下面投票最多的两个答案(这个和这个)似乎说的是不同的东西,即后者说比特率不能直接比较,如果原始音频采用更有效的格式,那么输出(效率较低)音频应该有比特率稍高(此处和此处的想法相同)-但效率较低的是 mp3,我不确定哪种格式更有效。(是 aac 吗?)(-- 通常,答案似乎属于投票最多的答案所代表的两个位置之一。)
我想通过 ssh 连接到将通过 3G 连接连接的笔记本电脑 (Ubuntu)。因此,我需要估计我将使用多少数据来选择适合的计划。
与文件传输分开,我可以轻松确定将使用多少数据,ssh 会话使用的典型数量是多少?是否存在某种关系,例如ls
在包含 50 个项目的目录上使用会花费我一定数量的数据?或者它是否更依赖于时间,并且无论使用如何,ssh 会话都会在每个时间间隔传输一定数量的数据?
可能的重复:
将 AVI 转换为 MP4 保持相同的质量
我想将大量的 wmv、mpg 和 avi 文件(具有不同的音频和视频编码)转换为具有同等质量的 mp4/x264/aac。我已经使用以下命令进行了一些测试:
ffmpeg.exe -i "test.avi" -c:v libx264 -c:a libvo_aacenc "test.mp4"
Run Code Online (Sandbox Code Playgroud)
(如您所见,我省略了指定音频和视频比特率和质量的选项)
使用此命令,FFmpeg 会自动保留视频尺寸,但我仍然不确定在省略比特率等内容时它如何处理?在将视频转换为不同格式和编解码器的同时保持视频质量的最佳方法是什么?
我使用的是 64 位 Windows 7 和 ffmpeg-20121230-git-518239c-win64-shared
我正在尝试使用 ffmpeg 命令确定视频比特率(用于转码),我尝试了以下命令。
ffmpeg -i 28572615.wmv
Run Code Online (Sandbox Code Playgroud)
它产生以下输出
Input #0, asf, from '28572615.wmv':
Metadata:
major_brand : isom
minor_version : 1
compatible_brands: isomavc1
encoder : Lavf57.36.100
Duration: 00:02:50.92, start: 0.000000, bitrate: 1982 kb/s
Stream #0:0: Video: wmv2 (WMV2 / 0x32564D57), yuv420p, 640x360, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 1k tbc
Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, 2 channels, fltp, 128 kb/s
At least one output file must be specified
Run Code Online (Sandbox Code Playgroud)
如果我使用另一个视频
ffmpeg -i with_out_sound.mp4
Run Code Online (Sandbox Code Playgroud)
然后我得到以下输出
Input …
Run Code Online (Sandbox Code Playgroud) 我想更改音频文件的频率。意思是:整个文件应该听起来(比方说)高一个八度或低一个八度。怎么做?使用ffmpeg
或其他命令行开源工具会更可取。
File Size (Bytes) = (sampling rate) × (bit depth) × (number of channels) × (seconds) / 8
Run Code Online (Sandbox Code Playgroud)
例如,70 分钟长的 CD 质量录音将占用 740880000 字节或 740MB:
44100 × 16 × 2 × 4200 / 8 = 740880000 Bytes
Run Code Online (Sandbox Code Playgroud)
但如果音频是VBR
( Variable bitrate ),它就不起作用。如何知道音频文件是 CBR 还是 VBR?
我正在使用 ffmpeg 对我的视频进行编码以将它们上传到网络上。我看到了这篇关于使用 ffmpeg 的帖子,但不太了解如何考虑这些值。
假设我有一个大小为 70 MB 的视频,持续时间为 4 分钟。我怎么会考虑这些标志值:-b:v
,-maxrate
和-bufsize
该命令?
ffmpeg -i input -codec:v libx264 -profile:v main -preset slow -b:v ? -maxrate ? -bufsize ? -vf "scale=720:trunc(ow/a/2)*2" -threads 0 -codec:a libfdk_aac -movflags +faststart output
Run Code Online (Sandbox Code Playgroud)
或者是否有任何正常值,例如crf
值是 19-24?我非常感谢您的帮助和指导。
我正在尝试使用ffmpeg创建视频文件的几个降级版本。我通过命令行使用以下命令(该命令取自文档):
ffmpeg -i ../../tos.avi -b:v 500k tos_500k.avi
我正在尝试使用低于 2000 kbps(低至 ~125 kbps)的几个值,但是当我检查生成的视频文件时实际产生的下限约为 2000 kbps。我正在使用软件videospec检查这些值。
[编辑]更准确地说,我的原始视频的分辨率为 1920x1080,比特率约为 15 Mbps。使用上述命令时,我可以毫无问题地将其降级到更大的比特率,例如 8000、5000,降到 2000 kbps。但是,低于 2000 的任何内容似乎都没有得到处理,因此生成的输出文件总是停留在超过 2000 kbps 的比特率上。(文件大小也非常接近成功降级到 2000 kbps 的文件。)
我知道 FPS 越高,图像在您当前的分辨率下看起来就越平滑。这也对应于显示器的刷新率。你的 FPS 只能达到你的刷新率 60hz 120hz 等,直到你得到奇怪的效果。(如果有错,还请说明)
比特率如何发挥作用?它与 FPS 有什么关系?
bitrate ×10
ffmpeg ×6
audio ×3
video ×3
linux ×2
conversion ×1
fps ×1
media ×1
metadata ×1
resampling ×1
resolution ×1
ssh ×1
ubuntu ×1