변환 설정을 사용하여 FFMPEG를 사용하여 .MKV를 .MP4로 변환

변환 설정을 사용하여 FFMPEG를 사용하여 .MKV를 .MP4로 변환

powershell스크립트를 사용하고 있으며 파일을 파일로 ffmpeg변환하여 스트리밍할 수 있습니다. 스크립트는 정상적으로 실행되지만 변환된 파일을 내 라이브러리에 추가하려고 하면 추가되지 않습니다. 로그를 확인해보면 다음과 같은 오류가 표시됩니다.mkvmp4serviioserviio

알 수 없는 비디오 코덱입니다.

이것은 powershell파일을 변환하는 데 사용하는 스크립트 입니다.

$oldvids = Get-ChildItem *.mkv -Recurse #-path 'C:\TestDir'
foreach ($oldvid in $oldvids) 
{
    $newvid = [io.path]::ChangeExtension($oldvid.FullName, '.mp4')
    C:\FFMpeg\bin\ffmpeg.exe -i $oldvid.FullName -y -vcodec copy -acodec ac3 $newvid
}

당면한 질문은 스크립트(스크립트 powershell또는 diff 프로그래밍 언어) 를 사용하여 파일을 스트리밍할 수 있도록 파일 mkv로 변환하려면 어떻게 해야 합니까 ?mp4serviio

편집하다
나는 사용하고있다지스팟오디오/비디오 코덱 정보를 얻으려면 아래에 좋은 설정과 나쁜 설정의 스크린샷이 나와 있습니다. 위의 설정을 다시 생성할 수 있는 스크립트를 어떻게 만들 수 있습니까(현재 설정이 작동하지 않음)?

(작업 설정)
좋은 설정
(비작동 설정)
잘못된 설정
이상적으로는 가능하다면 ffmpeg를 사용할 때 작업 설정의 설정으로 변환하고 싶습니다.

편집하다
그리고 이것은 명령을 실행한 결과입니다.

ffmpeg -i good.m4v -i bad.mp4

(bad.mp4 파일은 위의 스크립트가 변환에 사용된 파일입니다)

ffmpeg version N-80256-g0a9e781 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmfx --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil      55. 24.100 / 55. 24.100
libavcodec     57. 45.100 / 57. 45.100
libavformat    57. 37.101 / 57. 37.101
libavdevice    57.  0.101 / 57.  0.101
libavfilter     6. 46.101 /  6. 46.101
libswscale      4.  1.100 /  4.  1.100
libswresample   2.  0.101 /  2.  0.101
libpostproc    54.  0.100 / 54.  0.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'good.m4v':
Metadata:
  major_brand     : mp42
  minor_version   : 512
  compatible_brands: isomiso2avc1mp41
  creation_time   : 2016-06-23 15:20:11
  encoder         : HandBrake 0.10.5 2016021100
Duration: 00:28:09.31, start: 0.000000, bitrate: 3939 kb/s
  Chapter #0:0: start 0.000000, end 126.167000
Metadata:
  title           : 00:00:00.000
Chapter #0:1: start 126.167000, end 418.918000
Metadata:
  title           : 00:02:06.084
Chapter #0:2: start 418.918000, end 724.974000
Metadata:
  title           : 00:06:58.835
Chapter #0:3: start 724.974000, end 1099.515000
Metadata:
  title           : 00:12:04.891
Chapter #0:4: start 1099.515000, end 1618.950000
Metadata:
  title           : 00:18:19.432
Chapter #0:5: start 1618.950000, end 1689.313000
Metadata:
  title           : 00:26:58.659
Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 3772 kb/s, 23.98 fps, 23.98 tbr, 90k tbn, 180k tbc (default)
Metadata:
  creation_time   : 2016-06-23 15:20:11
  handler_name    : VideoHandler
Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 160 kb/s (default)
Metadata:
  creation_time   : 2016-06-23 15:20:11
  handler_name    : Stereo
Stream #0:2(eng): Subtitle: mov_text (text / 0x74786574)
Metadata:
  creation_time   : 2016-06-23 15:20:11
  handler_name    : SubtitleHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'bad.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2mp41
    encoder         : Lavf57.37.101
  Duration: 00:29:21.41, start: 0.000000, bitrate: 2489 kb/s
  Chapter #1:0: start 0.000000, end 182.432000
  Metadata:
    title           : 00:00:00.000
  Chapter #1:1: start 182.432000, end 504.838000
  Metadata:
    title           : 00:03:02.432
  Chapter #1:2: start 504.838000, end 913.329000
  Metadata:
    title           : 00:08:24.838
  Chapter #1:3: start 913.329000, end 1236.110000
  Metadata:
    title           : 00:15:13.329
  Chapter #1:4: start 1236.110000, end 1691.523000
    Metadata:
      title           : 00:20:36.110
  Chapter #1:5: start 1691.523000, end 1761.396000
    Metadata:
      title           : 00:28:11.523
  Stream #1:0(eng): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv), 1920x1080 [SAR 1:1 DAR 16:9], 2034 kb/s, 23.98 fps, 23.98 tbr, 16k tbn, 23.98 tbc (default)
  Metadata:
    handler_name    : VideoHandler
  Stream #1:1(eng): Audio: ac3 (ac-3 / 0x332D6361), 48000 Hz, 5.1(side), fltp, 448 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
    Side data:
    audio service type: main
   Stream #1:2(eng): Subtitle: mov_text (text / 0x74786574)
   Metadata:
    handler_name    : SubtitleHandler
  At least one output file must be specified

답변1

@LordNeckbeard의 도움 덕분에 내 .mkv파일을 변환하는 데 필요한 형식이 다음과 같다는 사실을 발견했습니다.H.264

따라서 현재 powershell스크립트를 간단히 편집하면 이 문제를 해결하고 적절한 스크립트로 변환할 수 있습니다.codec

이 스크립트는 다음과 같이 작동합니다.

$oldvids = Get-ChildItem *.mkv -Recurse #-path 'C:\TestDir'
foreach ($oldvid in $oldvids) 
{
  $newvid = [io.path]::ChangeExtension($oldvid.FullName, '.mp4')
  C:\FFMpeg\bin\ffmpeg.exe -i $oldvid.FullName -y -vcodec libx264 -acodec ac3 $newvid
}

관련 정보