- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我知道的将DVD图像转换为另一种视频格式(例如MP4)的过程:
VTS_01_
文件夹内的.VOB
n个VIDEO_TS
文件(对于n> = 0)连接为单个VOB文件。 avconv
或ffmpeg
将该VOB转换为另一种格式。 dvdsub
,并且出现以下错误
Only SUBTITLE_ASS type supported.
Subtitle encoding failed
avconv -codecs
时,我得到:
...
DES dvdsub DVD subtitles
...
-c:s copy
开关虽然可以防止命令失败,但似乎并不会产生播放器可以理解的字幕。
ass
从
dvdsub
创建
avconv
字幕?
-c:s copy
开关时,它进一步显示:
Application provided invalid, non monotonically increasing dts to muxer in stream 2: 49 >= 49
av_interleaved_write_frame(): Invalid argument
ffmpeg
是
avconv
的别名。我知道可以安装真正的ffmpeg,但到目前为止,我还没有这样做。)
cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB > ~/temp/mymovie.VOB
cd ~/temp
avconv -i mymovie.VOB
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mpeg @ 0x1a64d40] max_analyze_duration reached
Input #0, mpeg, from 'mymovie.VOB':
Duration: 00:00:01.95, start: 0.280633, bitrate: -2147483 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x20]: Subtitle: dvdsub
Stream #0.2[0x21]: Subtitle: dvdsub
Stream #0.3[0x22]: Subtitle: dvdsub
Stream #0.4[0x23]: Subtitle: dvdsub
Stream #0.5[0x24]: Subtitle: dvdsub
Stream #0.6[0x25]: Subtitle: dvdsub
Stream #0.7[0x26]: Subtitle: dvdsub
Stream #0.8[0x27]: Subtitle: dvdsub
Stream #0.9[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.10[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
At least one output file must be specified
avconv -i mymovie.VOB mymovie.mkv
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mpeg @ 0x1cdad40] max_analyze_duration reached
Input #0, mpeg, from 'mymovie.VOB':
Duration: 00:00:01.95, start: 0.280633, bitrate: -2147483 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x20]: Subtitle: dvdsub
Stream #0.2[0x21]: Subtitle: dvdsub
Stream #0.3[0x22]: Subtitle: dvdsub
Stream #0.4[0x23]: Subtitle: dvdsub
Stream #0.5[0x24]: Subtitle: dvdsub
Stream #0.6[0x25]: Subtitle: dvdsub
Stream #0.7[0x26]: Subtitle: dvdsub
Stream #0.8[0x27]: Subtitle: dvdsub
Stream #0.9[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.10[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
File 'mymovie.mkv' already exists. Overwrite ? [y/N] y
[buffer @ 0x1ce23c0] w:720 h:480 pixfmt:yuv420p
Output #0, matroska, to 'mymovie.mkv':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 8:9 DAR 4:3], q=2-31, 200 kb/s, 1k tbn, 29.97 tbc
Stream #0.1: Audio: libvorbis, 48000 Hz, 5.1, s16
Stream #0.2: Subtitle: ass, 200 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video -> mpeg4)
Stream #0:9 -> #0:1 (ac3 -> libvorbis)
Stream #0:1 -> #0:2 (dvdsub -> ass)
Press ctrl-c to stop encoding
[ass @ 0x1ce0140] Only SUBTITLE_ASS type supported.
Subtitle encoding failed
avconv -i mymovie.VOB -c:s copy mymovie.mkv
avconv -i mymovie.mkv
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[matroska,webm @ 0xbc1d40] Estimating duration from bitrate, this may be inaccurate
Input #0, matroska,webm, from 'mymovie.mkv':
Metadata:
ENCODER : Lavf53.21.1
Duration: 01:05:09.47, start: 0.000000, bitrate: N/A
Stream #0.0: Video: mpeg4 (Simple Profile), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 29.97 fps, 29.97 tbr, 1k tbn, 30k tbc (default)
Stream #0.1: Audio: vorbis, 48000 Hz, 5.1, s16 (default)
Stream #0.2: Subtitle: dvdsub (default)
At least one output file must be specified
cat VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB VTS_01_4.VOB VTS_01_5.VOB VTS_01_6.VOB VTS_01_7.VOB VTS_01_8.VOB > ~/temp/mylongmovie.VOB
cd ~/temp
avconv -i mylongmovie.VOB mylongmovie.mkv
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mpeg @ 0x13c2d40] max_analyze_duration reached
Input #0, mpeg, from 'Cosmos-0203.VOB':
Duration: 00:00:30.24, start: 0.280633, bitrate: 2103365 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 8000 kb/s, 27.46 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x20]: Subtitle: dvdsub
Stream #0.2[0x21]: Subtitle: dvdsub
Stream #0.3[0x22]: Subtitle: dvdsub
Stream #0.4[0x23]: Subtitle: dvdsub
Stream #0.5[0x24]: Subtitle: dvdsub
Stream #0.6[0x25]: Subtitle: dvdsub
Stream #0.7[0x26]: Subtitle: dvdsub
Stream #0.8[0x27]: Subtitle: dvdsub
Stream #0.9[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.10[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
File 'mylongmovie.mkv' already exists. Overwrite ? [y/N] y
[buffer @ 0x13ca3c0] w:720 h:480 pixfmt:yuv420p
Output #0, matroska, to 'mylongmovie.mkv':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 8:9 DAR 4:3], q=2-31, 200 kb/s, 1k tbn, 59.94 tbc
Stream #0.1: Audio: libvorbis, 48000 Hz, 5.1, s16
Stream #0.2: Subtitle: ass, 200 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video -> mpeg4)
Stream #0:9 -> #0:1 (ac3 -> libvorbis)
Stream #0:1 -> #0:2 (dvdsub -> ass)
Press ctrl-c to stop encoding
[ass @ 0x13d19c0] Only SUBTITLE_ASS type supported.
Subtitle encoding failed
avconv -i mylongmovie.VOB -c:s copy mylongmovie.mkv
avconv version 0.8.6-6:0.8.6-1ubuntu2, Copyright (c) 2000-2013 the Libav developers
built on Mar 30 2013 22:20:06 with gcc 4.7.2
[mpeg @ 0xce1d40] max_analyze_duration reached
Input #0, mpeg, from 'mylongmovie.VOB':
Duration: 00:00:30.24, start: 0.280633, bitrate: 2103365 kb/s
Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 8000 kb/s, 27.46 fps, 59.94 tbr, 90k tbn, 59.94 tbc
Stream #0.1[0x20]: Subtitle: dvdsub
Stream #0.2[0x21]: Subtitle: dvdsub
Stream #0.3[0x22]: Subtitle: dvdsub
Stream #0.4[0x23]: Subtitle: dvdsub
Stream #0.5[0x24]: Subtitle: dvdsub
Stream #0.6[0x25]: Subtitle: dvdsub
Stream #0.7[0x26]: Subtitle: dvdsub
Stream #0.8[0x27]: Subtitle: dvdsub
Stream #0.9[0x81]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
Stream #0.10[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
File 'mylongmovie.mkv' already exists. Overwrite ? [y/N] y
[buffer @ 0xce93c0] w:720 h:480 pixfmt:yuv420p
Output #0, matroska, to 'mylongmovie.mkv':
Metadata:
encoder : Lavf53.21.1
Stream #0.0: Video: mpeg4, yuv420p, 720x480 [PAR 8:9 DAR 4:3], q=2-31, 200 kb/s, 1k tbn, 59.94 tbc
Stream #0.1: Audio: libvorbis, 48000 Hz, 5.1, s16
Stream #0.2: Subtitle: dvdsub
Stream mapping:
Stream #0:0 -> #0:0 (mpeg2video -> mpeg4)
Stream #0:9 -> #0:1 (ac3 -> libvorbis)
Stream #0:1 -> #0:2 (copy)
Press ctrl-c to stop encoding
[matroska @ 0xce4b40] Application provided invalid, non monotonically increasing dts to muxer in stream 2: 49 >= 49
av_interleaved_write_frame(): Invalid argument
最佳答案
简短答案:跳至部分完整命令行,然后从this site下载ffmpeg
。
最初,我计划用avconv
回答如何执行此操作,因为(a)答案仍不存在,并且(b)avconv
似乎是当今ubuntu系统上的默认设置。但是,似乎目前尚无法解决此问题-至少对于我的测试用例而言。
ffmpeg设置
由于您询问avconv
或ffmpeg
,并且我刚刚了解到avconv
是ffmpeg
的分支(请参阅this answer进行讨论),因此我从this site下载了ffmpeg
的当前版本,如上述答案所述。 Windows版本也可用。对于典型的当前64位Linux构建,直接链接应为this page。它包含每日构建。因此,向下滚动,直到看到最新,最优秀的内容,例如下载并解压缩。 tar xzvf ffmpeg.static.64bit.2014-02-14.tar.gz
。静态构建的优点是,如果没有依赖项,则依赖项更少。解压缩tarfile会在当前目录中创建两个新的可执行文件ffmpeg
和ffprobe
。
基本命令行
现在,我们可以使用此最新的ffmpeg
将mymovie.vob*
中的所有流复制为其他格式。例如:
./ffmpeg -i mymovie.vob -c:v copy -c:a copy -c:s copy -map 0 mymovie.mkv
-i filename
-c:v copy
-c:a copy
-c:s copy
-map 0
outputfile
.vob
文件的细节。
Can't write packet with unknown timestamp
-fflags +genpts
。
./ffmpeg -fflags +genpts -i mymovie.vob -c:v copy -c:a copy -c:s copy -map 0 mymovie.mkv
ffmpeg
中的选项始终仅影响以当前选项命名的输入或输出文件。这两个选项必须影响输入文件,因此它们必须排在第一位。
.vob
文件时,这是非常典型的行为,并在
ffmpeg
FAQ中进行了介绍。视频容器文件类型(例如
.avi
或
.mp4
或
.mkv
)具有 header (文件开头的数据),列出文件的所有内容。这使得播放器和转换工具很容易知道需要什么样的数据。
.vob
文件没有这样的显式头。因此,当
ffmpeg
或
avconv
开始时,它们会查看前几千个字节。在VOB文件中,字幕可能起得很晚。在我的测试用例中,第一个字幕会在几秒钟后出现,因此工具在启动期间看不到它。以下是在这些情况下进行编码时的典型示例输出:
Output #0, matroska, to 'test.mkv':
Metadata:
encoder : Lavf55.32.101
Stream #0:0: Video: mpeg2video (mpg2 / 0x3267706D), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, max. 9800 kb/s, 25 fps, 1k tbn, 90k tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 448 kb/s
Stream #0:2: Audio: dts ([1] [0][0] / 0x2001), 48000 Hz, 5.1(side), 768 kb/s
Stream #0:3: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 448 kb/s
Stream #0:4: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, 224 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Stream #0:2 -> #0:2 (copy)
Stream #0:3 -> #0:3 (copy)
Stream #0:4 -> #0:4 (copy)
Press [q] to stop, [?] for help
[mpeg @ 0x31f2540] New subtitle stream 0:5 at pos:16945166 and DTS:22.2473s
[mpeg @ 0x31f2540] New subtitle stream 0:6 at pos:16951310 and DTS:22.2473s
[mpeg @ 0x31f2540] New subtitle stream 0:7 at pos:16957454 and DTS:22.2873s
[mpeg @ 0x31f2540] New subtitle stream 0:8 at pos:16963598 and DTS:22.2873s
[mpeg @ 0x31f2540] New subtitle stream 0:9 at pos:18405390 and DTS:25.4873s
[mpeg @ 0x31f2540] New subtitle stream 0:10 at pos:18417678 and DTS:25.4873s
[mpeg @ 0x31f2540] New subtitle stream 0:11 at pos:264593422 and DTS:288.207sts/s
[mpeg @ 0x31f2540] New subtitle stream 0:12 at pos:264597518 and DTS:288.207s
frame=24694 fps=7322 q=-1.0 Lsize= 859345kB time=00:16:27.74 bitrate=7127.1kbits/s
video:632823kB audio:224996kB subtitle:0 data:0 global headers:0kB muxing overhead 0.177935%
-map 5
选项以包括该流,则
ffmpeg
在启动过程中会抱怨该流号不存在。
ffmpeg
在文件开头分析更多字节,以便找到所有流。
-analyzeduration 1000000k -probesize 1000000k
。
Input #0, mpeg, from 'mymovie.vob':
Duration: 00:59:39.90, start: 0.287267, bitrate: 5915 kb/s
Stream #0:0[0x1e0]: Video: mpeg2video (Main), yuv420p(tv, bt470bg), 720x576 [SAR 64:45 DAR 16:9], max. 9800 kb/s, 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1[0x80]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
Stream #0:2[0x89]: Audio: dts (DTS), 48000 Hz, 5.1(side), fltp, 768 kb/s
Stream #0:3[0x82]: Audio: ac3, 48000 Hz, 5.1(side), fltp, 448 kb/s
Stream #0:4[0x83]: Audio: ac3, 48000 Hz, stereo, fltp, 224 kb/s
Stream #0:5[0x20]: Subtitle: dvd_subtitle
Stream #0:6[0x21]: Subtitle: dvd_subtitle
Stream #0:7[0x22]: Subtitle: dvd_subtitle
Stream #0:8[0x23]: Subtitle: dvd_subtitle
Stream #0:9[0x24]: Subtitle: dvd_subtitle
Stream #0:10[0x25]: Subtitle: dvd_subtitle
Stream #0:11[0x26]: Subtitle: dvd_subtitle
Stream #0:12[0x27]: Subtitle: dvd_subtitle
File 'test.mkv' already exists. Overwrite ? [y/N] y
Output #0, matroska, to 'test.mkv':
Metadata:
encoder : Lavf55.32.101
Stream #0:0: Video: mpeg2video (mpg2 / 0x3267706D), yuv420p, 720x576 [SAR 64:45 DAR 16:9], q=2-31, max. 9800 kb/s, 25 fps, 1k tbn, 90k tbc
Stream #0:1: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 448 kb/s
Stream #0:2: Audio: dts ([1] [0][0] / 0x2001), 48000 Hz, 5.1(side), 768 kb/s
Stream #0:3: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, 5.1(side), 448 kb/s
Stream #0:4: Audio: ac3 ([0] [0][0] / 0x2000), 48000 Hz, stereo, 224 kb/s
Stream #0:5: Subtitle: dvd_subtitle
Stream #0:6: Subtitle: dvd_subtitle
Stream #0:7: Subtitle: dvd_subtitle
Stream #0:8: Subtitle: dvd_subtitle
Stream #0:9: Subtitle: dvd_subtitle
Stream #0:10: Subtitle: dvd_subtitle
Stream #0:11: Subtitle: dvd_subtitle
Stream #0:12: Subtitle: dvd_subtitle
./ffmpeg -fflags +genpts -analyzeduration 1000000k -probesize 1000000k -i mymovie.vob -c:v copy -c:a copy -c:s copy -map 0 mymovie.mkv
./ffmpeg -fflags +genpts -analyzeduration 1000000k -probesize 1000000k -i mymovie.vob -c copy -map 0 mymovie.mkv
avconv
也支持所有这些选项。但是,此工具似乎对某些字幕仍然有问题。如果看到此错误:
[matroska @ 0x383aee60] Application provided invalid, non monotonically increasing dts to muxer in stream 7: 58280 >= 58280
av_interleaved_write_frame(): Invalid argument
ffmpeg
并改用该工具来解决。
关于ffmpeg - 使用avconv将带字幕的DVD图像转换为MKV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19200790/
我有一个 mkv 文件没有有效的持续时间。我想手动更改此持续时间参数。我通过了定义在这个 matroska 规范 http://www.matroska.org/technical/specs/ind
我有一个这样的 MKV: Input #0, matroska,webm, from 'MyVideo.mkv': Stream #0:0(eng): Video: h264 (High), yu
我有一个包含 5 个流的 MKV 文件... 0:视频 1:音频 2:音频 3:文字 4:菜单 我能够使用此命令将 MKV 重新组合成 MP4 ...... > ffmpeg.exe -i input
我正在按顺序下载 MKV 文件,我希望能够在浏览器中将它们显示给客户端。客户端应该能够跳过已下载的视频的所有部分,并在到达尚未添加到文件中的内容时进行缓冲。我曾尝试使用 ffmpeg RTMP,但这不
我有一个要求,我需要解析一个 matroska 文件。文件的初始几个字节如下所示。 0x1a 0x45 0xdf 0xa3 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x2
现在我正在尝试使用 ffmpeg 命令修剪 mkv 文件。 ffmpeg -y -i 1.mkv -filter_complex "[0:0]trim=start=201:duration=28,se
我有许多来自电视节目的视频文件,我想为每个文件添加字幕。虽然我可以对几个文件使用 MKV 合并,但是这里文件的数量太多了,单独处理一个文件会花费很多时间。我使用了以下内容: for %x i
我想添加一个 protobuf作为 Matroska (mkv) 视频文件的附件的消息 在没有复制视频数据的情况下写入所有视频帧后 .这必须是可能的,因为可以使用 MKVToolNix 套件(对于 J
我正在通过 ffmpeg 和 python 将几个 mkv 文件转换为 mp4。但是,当我去播放它们时,背景音频会完美同步,但就好像所有声音都掉了一样。有没有办法将所有音频设置为单声道? 或者我如何指
我有一个包含 3 个流的 mkv 文件。我使用 ffprobe 来获取我的 mkv 文件的信息。 ffprobe ./demo/test2.mkv 我得到了这个输出 Input #0, matrosk
我需要一种从具有多个音轨的 MKV 文件中获取语言代码的方法。 ffmpeg产生输出,然后我可以使用正则表达式进行过滤,但它看起来不是很优雅: $ ffmpeg -i file.mkv 2>&1 |
我有一个包含 2 个音频和 4 个字幕流的 mkv 文件。第三和第四个字幕流包含错误,所以我提取并更正了它们,但我不知道如何在 mkv 文件中替换它们。我试过了ffmpeg.exe -i .\vide
我使用IIS中的目录列表功能上传了一堆文件,方便 friend 和家人访问和下载。 我的问题是它列出了 .mkv 文件,但是当您单击它时,我收到“找不到页面”的消息。 我试过重新定位文件并重命名它,但
我试图从 youtube 下载 youtube-dl -F 249 "https://www.youtube.com/watch?v=yXT1ElMEkW8" 我的版本youtube-dl --ver
我正在尝试在播放视频的地方设置HTML页面。 我的视频是一个.mkv文件。它在Chrome上正常运行,但没有声音。 音频编解码器为AC3。 我的代码: https://jsfiddle.net/wc
我可以在android中以mp4和3gp格式录制视频。但是如何以.mkv格式录制和保存视频。是否可以在android中执行此操作。android是否支持.mkv格式。请提供解决方案。 谢谢... 最佳
如何使用 JAVA 或 C 或 C++ 将来自摄像机的多个视频和音频流(我们希望流不以任何方式编码)编码为一个 mkv,以便来自摄像机 A 的声音相对于来自摄像机 A 的视频进行编码? (该算法应该适
我正在使用简单的 HTML5 标签。现在 chrome 正在播放 .mkv视频,但在 mozilla firefox 中不受支持。那么,有什么东西可以解决我在网页上播放视频的所有问题吗? 最佳答案 没
我正在接收以字节为单位的 MKV 视频片段。我需要在不将视频保存在磁盘中的情况下拍摄它的第一帧以供以后处理。对于图像的类似问题,我使用 OpenCV 或 PIL 并且一切正常,但是,我无法对视频数据执
我发现这个屏幕截图显示您可以使用 Shark007+ 以在 Windows 资源管理器中显示为文件图标的方式将封面图像添加到 mkv 文件伊卡洛斯。 但是这些工具正在以一种非常糟糕的方式扰乱系统。很多
我是一名优秀的程序员,十分优秀!