ffmpeg - (ffmpeg) 未设置 VBV 缓冲区大小 - MPG 到 MPG
问题描述
我有一个带有两个音频流的 MPG 文件 (mpeg2)。
我只想在不重新编码或质量损失的情况下删除其中一个音频流。
这是我的命令(我不映射要删除的音频):
ffmpeg -i input.MPG
-map 0:v:0 -map 0:a:1
-vcodec mpeg2video
-c:a mp2
-y
output.MPG
它有效但我有这个错误/警告:
[mpeg @ 0000020268f9a300] VBV buffer size not set, using default size of 230KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
当然,输出视频的质量非常糟糕!
我怎样才能解决这个问题 ?
非常感谢你的回答 ;)
解决方案
如果要删除媒体中的一个流,请复制除要删除的流之外的所有内容。
查找媒体内的所有流
您可以通过以下方式获得媒体中的所有流:
ffprobe mediafile.mpg 2>&1 | grep -i stream
例子
这是我的媒体之一的示例输出:
Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 171 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc (default)
Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 720x576 [SAR 64:45 DAR 16:9], 55 kb/s, 25 fps, 25 tbr, 12800 tbn, 50 tbc
Stream #0:2(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default)
Stream #0:3(deu): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 130 kb/s
Stream #0:4(fra): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 129 kb/s
它有两个视频流(来自两个摄像头)和三个音频流(不同语言)。
如何复制(无损)
现在,如果你想复制一个流,你需要这个词copy
作为编解码器。例子:
ffmpeg -i media.mpg -c copy output.mkv
或更明确(视频和音频编解码器)
ffmpeg -i media.mpg -c:v copy -c:a copy output.mkv
作为标准,这将仅复制第一个视频流、第一个音频流、第一个字幕流等。
复制所有流:
ffmpeg -i media.mpg -map 0 -c copy output.mkv
注意:mkv
是一个现代媒体容器(avi
并且mpg
相当陈旧和过时,mp4
也较新,但mkv
更灵活)。但是你也可以使用mpg
容器作为输出。
删除流
现在,我将向您展示如何使用上面的示例媒体文件选择要复制的流。其他流将被省略(= 删除):
ffmpeg -i media.mkv -c copy -map 0:0 -map 0:2 -map 0:3 output.mkv
正如您在上面看到的,我有两个视频流(0:0 和 0:1)和三个音频流(0:2、0:3、0:4)。在我的命令中,我省略了流 0:1 和 0:4(我删除了它们)。
你的情况
对于您的情况,您应该有 0:0(视频)和 0:1(音频)和 0:2(音频):
ffmpeg input.mpg -c copy -map 0:0 -map 0:1 output.mpg
推荐阅读
- javascript - 如何使 HTML 日历始终对用户可见
- android - Android将本地应用程序数据库文件复制到内部设备内存文件夹
- wordpress - Wordpress - 高级自定义字段块:退出时不触发渲染预览
- django - Django Import-export TypeError: clean() got an unexpected keyword argument 'row'
- google-cloud-platform - 在 BigQuery 中更改具体化视图会导致“意外语句”
- python - 使用参数 pyqt5 线程化一个类
- xml - 使用 XSLT 将 XML 中的标记转换为另一种格式无法正常工作
- xcode - xamarin mac Controller.designer.cs 文件未填充
- javascript - 如何将切换功能组合在一个功能中?
- android - 如何更改 FAB 按钮中的背景颜色?