Estoy usando un powershell
script ffmpeg
para convertir mkv
archivos en mp4
archivos para poder transmitirlos usando serviio
el script. El script se ejecuta como debería, sin embargo, cuando serviio
intento agregar los archivos convertidos a mi biblioteca, no se agregan. Si reviso el registro muestra un error de
Códec de vídeo desconocido.
Este es el powershell
script que estoy usando para convertir los archivos.
$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
}
La pregunta que nos ocupa es: ¿cómo puedo utilizar un script (ya sea powershell
o un lenguaje de programación diferencial) para convertir mkv
archivos en mp4
archivos y serviio
poder transmitirlos?
EDITAR
estoy usandoPUNTO Gpara obtener información sobre el códec de audio/vídeo y, a continuación, se muestran capturas de pantalla de configuraciones buenas y malas. ¿Cómo puedo tener un script que pueda recrear la configuración anterior (ya que la actual no funciona)?
(Configuraciones de trabajo)
(Configuraciones que no funcionan)
Lo ideal sería realizar la conversión con la configuración de Configuración de trabajo cuando uso ffmpeg, si es posible.
EDITAR
Y este es el resultado de ejecutar el comando.
ffmpeg -i good.m4v -i bad.mp4
(el archivo bad.mp4 es uno para el que se utilizó el script anterior)
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
Respuesta1
Gracias a la ayuda de @Lordneckbeard descubrí que el formato que necesitaba para convertir mis .mkv
archivos eraH.264
Entonces, una simple edición de mi powershell
script actual puede remediar esto y convertirlo con el formato adecuado.codec
Este script funciona:
$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
}