我正在使用powershell
脚本将文件ffmpeg
转换为文件,以便我可以使用 脚本按预期执行,但是当我尝试将转换后的文件添加到我的库时,它们没有被添加。如果我检查日志,它会显示错误mkv
mp4
serviio
serviio
未知的视频编解码器。
这是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
还是不同的编程语言)将mkv
文件转换为mp4
文件以便serviio
可以流式传输它们?
编辑
我在用斑点检测获取音频/视频编解码器信息,下面是正确设置和错误设置的屏幕截图。我怎样才能有一个脚本来重新创建上述设置(因为我当前的设置不起作用)?
(工作设置)
(非工作设置)
理想情况下,如果可能的话,我希望在使用 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
}