2013-10-05 15 views
18

Đây là thủ tục mà tôi biết để chuyển đổi một hình ảnh DVD để videoformat khác (vg MP4):Chuyển đổi hình ảnh DVD với phụ đề để MKV sử dụng avconv

  1. nối các tập tin VTS_01_n.VOB bên VIDEO_TS thư mục (ví n> = 0) vào một tệp VOB duy nhất.
  2. sử dụng avconv hoặc ffmpeg để chuyển đổi VOB đó thành định dạng khác.

Cho đến giờ rất tốt, tuy nhiên bây giờ tôi muốn chuyển đổi hình ảnh DVD với phụ đề. Theo như tôi biết định dạng MKV hỗ trợ phụ đề, do đó, nó có vẻ là một sự lựa chọn rõ ràng. Ngoài ra tôi có thể sử dụng bất kỳ định dạng nào khác với phụ đề khó (phụ đề như một phần của hình ảnh video).

Tuy nhiên, mã hóa phụ đề trong hình ảnh DVD là dvdsub và tôi nhận được lỗi sau

Only SUBTITLE_ASS type supported. 
Subtitle encoding failed 

Tuy nhiên, khi chạy avconv -codecs tôi nhận được:

... 
DES dvdsub   DVD subtitles 
... 

-c:s copy chuyển đổi, trong khi nó ngăn chặn lệnh thất bại, nó dường như không tạo ra một phụ đề mà người chơi có thể hiểu được.

Vì vậy, làm cách nào để tạo phụ đề ass từ dvdsub bằng cách sử dụng avconv?

Tệp VOB của tôi có tám kênh phụ đề và hai kênh âm thanh. Ứng dụng video Ubuntu không hiển thị bất kỳ phụ đề nào và chỉ có kênh âm thanh đầu tiên dường như hoạt động, ảnh đĩa DVD có thể bị hỏng.

tập tin khác, đối với một double-layer DVD, hiển thị các lỗi mã hóa Subtitle, tuy nhiên khi sử dụng -c:s copy chuyển đổi nó tiếp tục hiển thị:

Application provided invalid, non monotonically increasing dts to muxer in stream 2: 49 >= 49 
av_interleaved_write_frame(): Invalid argument 

Cảm ơn bạn trước cho bất kỳ ý tưởng về cách giải quyết những vấn đề này .

(Tôi đang sử dụng Ubuntu nơi ffmpeg là bí danh cho avconv. Tôi biết có thể cài đặt ffmpeg thực nhưng cho đến nay tôi chưa làm như vậy.)


update: lệnh và giao diện điều khiển đầu ra: lệnh

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 

đầu ra

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 

lệnh

avconv -i mymovie.VOB mymovie.mkv 

đầu ra

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 

lệnh

avconv -i mymovie.VOB -c:s copy mymovie.mkv 

sản lượng bỏ qua.

lệnh

avconv -i mymovie.mkv 

đầu ra

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 

Bây giờ, đối với hai lớp: lệnh

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 

đầu ra

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 

lệnh

avconv -i mylongmovie.VOB -c:s copy mylongmovie.mkv 

đầu ra

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 
+0

@LordNeckbeard lệnh và đầu ra được chèn –

+1

Chuyển đổi DVD sang MKV: ** với ** mã hóa sử dụng Handbrake, ** không có ** mã hóa MakeMKV. – Endoro

+0

@Endoro: ** MakeMKV ** đã làm việc cho tôi. Trong khi tôi muốn có một giải pháp mã nguồn mở hoàn chỉnh (điều này đòi hỏi phải cài đặt nhị phân), điều này đã làm việc hoàn hảo cho nhu cầu trước mắt của tôi. Nếu bạn viết nó như là một câu trả lời tôi sẽ upvote nó và (nếu không có 'avconv' trả lời nhất định) chấp nhận nó. Cảm ơn bạn. –

Trả lời

4

Nếu bạn cần một tiết kiệm chất lượng giải pháp bạn nên thử MakeMKV.
Nếu bạn muốn nén đoạn video hoặc chuyển đổi MPEG-2 thành H.264, bạn có thể sử dụng handbrake.

+0

** MakeMKV ** đã làm việc cho tôi. Cảm ơn bạn. ** Handbrake ** đang gây tắt máy trong hệ thống của tôi trước khi hoàn thành chuyển đổi đầu tiên. –

+0

@ CarlosEugenioThompsonPinzón bạn đã thử [Xây dựng ban đêm] (http://handbrake.fr/nightly.php) chưa? – Endoro

33

Trả lời ngắn: Bỏ qua phần Toàn bộ dòng lệnh và tải xuống ffmpeg từ this site.

Ban đầu, tôi dự định trả lời cách thực hiện việc này với avconv vì (a) câu trả lời vẫn bị thiếu và (b) avconv có vẻ là mặc định trên hệ thống ubuntu hiện nay. Tuy nhiên có vẻ như nó hiện đang quá lỗi để thực hiện điều này - ít nhất là cho testcases của tôi.

cài đặt ffmpeg

Kể từ khi bạn yêu cầu một trong hai avconv hoặc ffmpeg, và tôi chỉ biết được rằng avconv là một ngã ba của ffmpeg (xem this answer cho một cuộc thảo luận), tôi đã tải về một phiên bản hiện tại của ffmpeg từ this site như câu trả lời nói trên giải thích. Windows xây dựng cũng có sẵn. Đối với một điển hình hiện tại 64bit Linux xây dựng liên kết trực tiếp sẽ là this page. Nó chứa các bản dựng hàng ngày. Vì vậy, hãy cuộn xuống cho đến khi bạn thấy bản tải xuống mới nhất và tuyệt vời nhất, và giải nén với ví dụ: tar xzvf ffmpeg.static.64bit.2014-02-14.tar.gz.Ưu điểm của một xây dựng tĩnh là nó có ít hơn, nếu không, phụ thuộc. Giải nén tarfile đã tạo hai tệp thực thi mới ffmpegffprobe trong thư mục hiện tại.

cơ bản dòng lệnh

Bây giờ chúng ta có thể sử dụng mới nhất ffmpeg để sao chép tất cả các con suối bên trong mymovie.vob* sang một định dạng khác nhau. Ví dụ:

./ffmpeg -i mymovie.vob -c:v copy -c:a copy -c:s copy -map 0 mymovie.mkv 

dòng lệnh này

  • đọc từ tập tin đầu vào -i filename
  • bản phim suối trong đó -c:v copy suối
  • bản audio trong đó -c:a copy
  • bản phụ đề trong đó -c:s copy
  • a nd thay vì chỉ sử dụng đầu tiên của mỗi, nó sử dụng, và bản sao tất cả chúng -map 0
  • đến tập tin đầu ra outputfile

Hãy mở rộng dòng lệnh trên để workaround một số lỗi có thể có trong các công cụ, hoặc bị hỏng các tệp đầu vào hoặc chỉ các chi tiết cụ thể về các tệp .vob.

làm việc xung quanh cho lỗi Can't write packet with unknown timestamp

Thêm các tùy chọn -fflags +genptstrước tập tin đầu vào.

./ffmpeg -fflags +genpts -i mymovie.vob -c:v copy -c:a copy -c:s copy -map 0 mymovie.mkv 

Options trong ffmpeg luôn chỉ ảnh hưởng đến đầu vào hay đầu ra tập tin có tên sau tùy chọn hiện hành. Hai tùy chọn đó phải ảnh hưởng đến tệp đầu vào, vì vậy chúng phải đến trước.

Cách giải quyết này được bao gồm trong this bug ticket và có thể không trợ giúp trong mọi trường hợp.

Thiếu một số hoặc tất cả các phụ đề

Đây là hành vi rất điển hình khi xử lý .vob tập tin và được bao phủ trong ffmpeg FAQ. Các loại tệp chứa video chẳng hạn như .avi hoặc .mp4 hoặc .mkv có tiêu đề (dữ liệu ở đầu tệp) liệt kê tất cả nội dung của tệp. Điều này giúp người chơi và công cụ chuyển đổi dễ dàng biết loại dữ liệu mong đợi. .vob tệp không có tiêu đề rõ ràng như vậy. Vì vậy, khi ffmpeg hoặc avconv bắt đầu, họ xem xét vài nghìn byte đầu tiên. Trong các tệp vob, phụ đề có thể bắt đầu rất muộn. Trong testcase của tôi phụ đề đầu tiên xuất hiện sau vài giây, do đó, các công cụ không nhìn thấy nó trong khi khởi động. Dưới đây là ví dụ điển hình trong quá trình mã hóa trong các trường hợp sau:

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% 

Như bạn có thể thấy, dòng phụ đề mới được tìm thấy trong quá trình mã hóa thực tế.Nếu một người cố gắng thêm tùy chọn -map 5 để bao gồm luồng đó, ffmpeg sẽ khiếu nại trong quá trình khởi động rằng số luồng này không tồn tại.

Giải pháp là yêu cầu ffmpeg phân tích nhiều byte hơn ở đầu tệp để tìm tất cả các luồng.

Thử thêm các tùy chọn -analyzeduration 1000000k -probesize 1000000ktrước tệp đầu vào.

Thử tăng số nếu các luồng vẫn không được tìm thấy. Trong thử nghiệm của tôi, những con số đó đủ lớn. Kết quả sau đó thay đổi để:

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 

Full commandline

./ffmpeg -fflags +genpts -analyzeduration 1000000k -probesize 1000000k -i mymovie.vob -c:v copy -c:a copy -c:s copy -map 0 mymovie.mkv 

Bất kỳ các bản sao có thể được thay thế bằng một codec để thực sự chuyển đổi, và có khả năng nén, dữ liệu. Nhưng nếu đó chỉ là ba bản sao thì lệnh có thể được đơn giản hóa thành:

./ffmpeg -fflags +genpts -analyzeduration 1000000k -probesize 1000000k -i mymovie.vob -c copy -map 0 mymovie.mkv 

Tất cả các tùy chọn này cũng được hỗ trợ bởi avconv. Tuy nhiên công cụ này dường như vẫn còn có một vấn đề với một số phụ đề. Nếu bạn gặp phải lỗi này:

[matroska @ 0x383aee60] Application provided invalid, non monotonically increasing dts to muxer in stream 7: 58280 >= 58280 
av_interleaved_write_frame(): Invalid argument 

Bạn có thể workaround bằng cách tải về mới nhất của ffmpeg và sử dụng công cụ mà thay vào đó, như tôi đã giải thích ở trên.

+1

Từ kinh nghiệm của tôi, ffmpeg chokes trên một số đầu vào hoàn toàn (tạo ra tập tin không hợp lệ và/hoặc treo), nhưng tôi chuyển đổi (lại muxed) chúng sang định dạng MKV với 'mkvmerge' thành công và nó tạo ra tập tin hoàn toàn chính xác. Mặc dù tôi đã không kiểm tra nếu nó cũng chuyển phụ đề, nhưng tôi chắc chắn nó nên chăm sóc của họ, quá. –

Các vấn đề liên quan