我从Udacity下载mp4格式的讲座,但它们经常被分解成2-5分钟的块。我想将每个讲座的视频合并为一个连续的流,我在Windows上使用AnyVideo Converter取得了成功。我正在尝试在Ubuntu 15上做同样的事情,我的大多数网络搜索结果都提示MP4Box,我的文档和我能找到的所有在线示例都提供了以下语法:
MP4Box -cat vid1.mp4 -cat vid2.mp4 -cat vid3.mp4 -new combinedfile.mp4
这会创建一个包含工作音频的新文件,但该视频不起作用。当我用Ubuntu的原生视频播放器打开时,我收到错误“在流结束前没有解码的有效帧”。当我用VLC打开时,我收到错误“Codec不支持:VLC无法解码格式'avc3'(此编解码器无描述。”我也尝试使用-keepsys
开关,但我得到相同的结果。
所有的文档和在线讨论听起来好像我正在尝试做的并且应该非常简单,但我似乎无法找到与我得到的具体错误相关的信息。我错过了什么?
答案 0 :(得分:2)
使用import logging
logging.basicConfig(
level=logging.DEBUG,
filename='myProgramLog.txt',
format=' %(asctime)s - %(levelname)s - %(message)s')
import time
def timeit(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
logging.debug('%r (%r, %r) %2.2f sec' % \
(method.__name__, args, kw, te-ts))
return result
return timed
选项。
例如,
-force-cat
来自MP4Box文档:
MP4Box -force-cat -add in1.mp4 -cat in2.mp4 -cat in3.mp4 ... -new out.mp4
答案 1 :(得分:1)
根据'avc3'
的存在,它看起来这些视频是用h.264 | avc编码的。有几种模式可以连接这些流。视频流具有兼容的编码器配置(帧大小,......),在这种情况下,文件中仅使用一个配置描述(由'avc1'表示)。如果配置不完全兼容,MP4Box使用这些配置的“带内”存储(由'avc3'发出信号)。另一种方法是使用多个样本描述条目(流配置),但是玩家不能很好地支持这些条目,而MP4Box也不能支持。除非您想重新编码视频,否则没有其他办法。在Ubuntu上,您应该能够使用与MP4Box一起播放的播放器播放“avc3”流:MP4Client。