VOB을 avi로 변환하는 방법은 무엇입니까?


10

DVD에서 복사 한 VOB 파일을 Ubuntu 13.10에서 avi로 변환하려고합니다. 나는 노력 dvdrip으로 인해 프레임 카운트 오류 또는 무언가에 실패하는. acidrip도 시도했지만 항상 사용하고 싶지 않은 오디오 트랙을 선택합니다. 다음 기능을 사용하여 avi를 만드는 명령 줄 솔루션을 선호합니다.

  • mplayer와 함께 사용 가능 (예 : 단계 함수 사용)
  • 필요에 따라 자막과 함께 (또는 전혀 없음)
  • 올바른 오디오 트랙
  • 비디오 및 오디오 동기화

나는 몇 가지 시도 ffmpeg하고 avconv명령을하고 avi 파일을 만들 나섰고 비디오와 오디오가 동기화 completly했다. VOB 파일을 avi 파일로 변환하려면 어떤 옵션을 사용해야합니까?

제안 된 옵션에 대한 설명을 부탁드립니다!

추가 정보:

  1. ffmpeg명령은 입력 파일에 대해 다음과 같은 출력을 제공합니다

    Input #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB':
      Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s
        Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc
        Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
        Stream #0.2[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
        Stream #0.3[0x81]: Audio: ac3, 0 channels
    [buffer @ 0x15ca6e0] w:720 h:480 pixfmt:yuv420p
    
  2. 다음 명령

    ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
    

    예를 들어 우분투 세션이 중단되었습니다.

  3. 다음 명령

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
    

    예를 들어 다음과 같은 오류가 발생했습니다.

    Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374
    av_interleaved_write_frame(): Invalid argument
    
  4. 다음 명령

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k output.avi
    

    예를 들어 다음과 같은 오류가 발생했습니다.

    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
    
  5. 다음 명령

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a ac3 -b:a 128k output.avi
    

    예를 들어 일부 프레임에서는 작동하는 것 같습니다. 그러나 곧 양식의 많은 오류가 발생했습니다.

    [ac3 @ 0x120d480] frame sync error
    Error while decoding stream #0:1
    frame CRC mismatch
    
  6. 다음 명령

    mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
    

    일부 변환을 수행했지만 (i) 자막을 사용하고 싶지는 않지만 (ii) 오디오를 잘못 받았거나 (오디오 및 비디오가 잘못 배치됨) (iii) 영화가 실제로 진행하는 것보다 느리게 보입니다. 90 분 동영상의 경우 2 시간).

  7. 여기에 주어진 명령 (Xeratul의 세 번째 게시물)을 시도했지만 오류로 중지되었습니다.

    FATAL: Cannot initialize video driver.
    
  8. 나는 mencoder 페이지 를보기 위해 아래의 제안을 시도했다 . 이 페이지는 다음 두 단계를 사용하도록 제안합니다.

    첫 번째는 영화에 대한 정보를 읽고 두 번째는 해당 정보를 사용하여 인코딩합니다.

    그러나 두 번째 단계에서 어떤 정보를 추출 하고 사용하는 방법에 대해서는 설명 되어 있지 않습니다 . 그래서 다음 명령을 사용했습니다.

    mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosound -ovc x264 \
    -x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\
    me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
    -vf scale=-1:-10,harddup -o video.avi
    

    비디오를 변환했지만 원하지 않는 자막을 사용했습니다. 자막 사용을 피할 수있는 방법은 전혀 명확하지 않습니다.


ffmpeg오래 전부터 더 이상 사용되지 않으므로 자체 후속 작업을 사용해야합니다 avconv..
user2485710

그렇다면 avconvVOB 파일을 avi로 변환 하는 방법을 사용하십시오 . 명령 avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi은 오류를 Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
알렉스

avconv의 맨 페이지에 예제가 있습니다. 해독 된 VOB 파일의 경우 다음을 avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi시도하십시오
user2485710

오류가 발생합니다Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Alex

mencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/null그런 다음 시도해보십시오 mencoder yourvob -oac copy -ovc x264 -x264encopts pass=2:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o video.avi-링크 된 Arch doc @ dg99에서 가져 왔습니다.

답변:


6

자막을 없애기 -nosub위해 .VOB 파일 이름 바로 뒤에 스위치를 추가 할 수 있다고 생각합니다 .

$ mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosub -nosound -ovc x264 \
-x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\
me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
-vf scale=-1:-10,harddup -o video.avi

세부

이 주문은 종종 매우 밀도가 높기 때문에 이것을 조금 분해합니다.

  • 입력 파일: Videos/Test/VIDEO_TS/VTS_01_1.VOB
  • 결과물 파일: -o video.avi
  • 자막 없음 : -nosub
  • 소리를 인코딩하지 마십시오 : -nosound
  • 주어진 코덱으로 인코딩 : -ovc x264

다른 코덱 목록

$ mencoder -ovc help
MEncoder SVN-r36171-4.8.1 (C) 2000-2013 MPlayer Team

Available codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   nuv      - nuppel video
   lavc     - libavcodec codecs - best quality!
   libdv    - DV encoding with libdv v0.9.5
   xvid     - XviD encoding
   x264     - H.264 encoding
  • x264 인코딩 옵션 : x264encopts
  • 직접 움직임 벡터에 대한 설정 모드 :direct=auto
  • 패스 :pass=2
  • 대상 인코딩 비트 전송률 : bitrate=900
  • 사전. B- 프레임 및 P- 프레임에서 예측 자로 사용되는 프레임 (def : 3) :frameref=5
  • 동시 B- 프레임 수 : bframes=1
  • 풀 픽셀 모션 추정 알고리즘 : me=umh

    참고 : 음 -고르지 않은 6 각형 검색 (느린)

  • 모든 매크로 블록 유형을 활성화하십시오. partitions=all

  • 속도 왜곡 최적 양자화 : trellis=1

    참고 : 2-모든 모드 결정 중에 활성화 (느리게, subq> = 6 필요)

  • 양자화 기 증가 / 감소 값 : qp_step=4

    참고 : 프레임 간 양자화 기가 증가 / 감소 될 수있는 최대 값 (기본값 : 4)

  • 양자화 기 압축 (기본값 : 0.6) : qcomp=0.7

  • B- 프레임에서 매크로 블록에 대한 모션 예측 : direct_pred=auto
  • 키 프레임 사이의 최대 간격 (프레임) : keyint=300

  • 이 옵션 이후의 옵션은 비디오 필터입니다. -vf

참고 : 비디오 필터 스위치의 harddup경우 마지막 필터로 사용하는 것이 중요합니다 . MEncoder가 출력의 모든 프레임 (중복 프레임)을 쓰도록 강제합니다. 또한 원래 너비 또는 일반적으로 작은 너비를 유지하려면 as scale=$WIDTH,-10와 함께 사용해야 합니다. H.264 코덱은 정사각형 픽셀을 사용하고 DVD는 사각형 픽셀을 사용하기 때문에 필요합니다.$WIDTH-1

  • scale=-1
  • -10
  • harddup

비디오를 얻는 방법에 대한 잘 설명 된이 예에 대해 대단히 감사합니다. 제안한 명령이 비디오 추출에 완벽하게 작동하는 것 같습니다. 그러나 지금은 오디오가 없습니다. 내가없이 명령을 사용하는 경우 -noaudio와 함께 -oac copy나는 비디오와 동기화되지 오디오를 얻을. 다른 속도로 변위되거나 둘 다입니다. 오디오를 올바르게 얻는 방법에 대한 제안이 있습니까? 그리고 여러 VOB 파일은 어떻습니까? 컨텐츠를 단일 .avi파일 (또는 다른 형식) 로 압축하는 방법은 무엇입니까?
Alex

@Alex-그냥 생각하지만 -oac copy비디오를 다시 인코딩하기 때문에 단순히 2 패스로 a 를 수행 할 수 있다고 생각하지 않습니다 . 비디오와 함께 오디오를 다시 인코딩해야합니다. 그것들을 "포장 (packing)"하려면 vob 파일을 다음과 같이 병합해야합니다 : cat *.vob all.vob. 그런 다음 all.vobmencoder cmd에서 사용 하십시오. 이 작업을 수행하는 다른 방법도 있습니다.
slm

3

을 사용하려면 ( http://www.mplayerhq.hu ) mplayer시도해야합니다 . 가장 좋은 기능 중 하나는 알고있는 재생 옵션이 인코딩 할 때와 거의 같은 방식으로 작동 한다는 것 입니다. 또한 원하는 내용을 정확하게 설명하는 많은 문서 및 이메일 스레드가 있습니다.mencodermplayer


제공된 링크에는 수십 개의 서로 다른 예제와 수백 개의 옵션이 있습니다. 내 질문에 대한 명확하고 정확한 답변은 아닙니다.
Alex

1
사실, 나는 평판을 얻기 위해 답을 쓰지 않았습니다. 나는 당신을 돕기 위해 썼습니다. 일부 mencoder페이지를 읽는 것을 고려하십시오 . mencoder모든 작업 에만 사용하는 여러 해적 그룹이 있습니다 . 그것이 얼마나 간단하고 강력하며 자동화 될 수 있는지입니다.
dg99

2

나는 이것이 오래된 게시물이라는 것을 알고 있지만 인터넷 에서이 문제를 검색하면 위의 질문이 나타나고 다른 항목은 더 오래되었습니다.

다른 도구를 사용해 보았지만 결국이 명령에 가장 만족합니다.

ffmpeg -i *.vob -c:v libx264 -crf 20 -c:a libmp3lame -ac 2 -ab 192k output.avi

내가 여기서 찾은 것의 약간의 수정입니다 .

방금 오디오 코덱을 libflac교체했습니다 libmp3lame( 시스템에는 없었으므로 ( 소스 ) 및 -crf품질을 높이기 위한 값으로 교체했습니다 . 다른 형식도 사용할 수 있습니다) mp4.

내 테스트 (심지어 평범한 프로세서 사용)에서 2.6GB vob 파일 (이미 세 개의 다른 파일로 이미 연결되어 있음)은 약 50 분 안에 비슷한 품질의 960MB avi 비디오로 변환되었습니다.

20은 중간 정도의 품질입니다 (내가 본 핸드 브레이크 도움말). 숫자가 클수록 품질이 저하되어 크기가 줄어 듭니다. 20 개 이상의 품질 손실이 분명합니다.

진행 상황을보고, 더 쉽게 종료하기 위해 터미널에서 해당 명령을 사용하는 것이 좋습니다.

이 명령에서 내가 좋아하는 점은 품질, 시간 및 크기 사이의 균형이 양호하며 파일 관리자의 상황에 맞는 메뉴에서 쉽게 사용할 수 있다는 것입니다.

이를 수행하는 방법은 파일 관리자에 따라 다릅니다. 이 명령은 Thunar 및 Nautilus에 '맞춤 동작'으로 쉽게 추가 할 수 있습니다. 다음과 같은 ~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop파일 로 Dolphin에 추가했습니다 .

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,video/mpeg
MimeType=video/mpeg
Actions=Convert2avi
X-KDE-Submenu=Convert vob (DVD video)
Encoding=UTF8

[Desktop Action Convert2avi]
Name=to avi
Icon=video
Exec=konsole -e ffmpeg -i *.vob -c:v libx264 -crf 20 -c:a libmp3lame -ac 2 -ab 192k output.avi

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.