(Folderwide)ffmpeg中的大容量转换为H264编解码器

2024-09-29 17:47:45 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试图掌握ffmpeg,但我不是很擅长。我正在尝试使用H264编解码器将所有.mkv文件转换为.m4v。从另一个项目中,我知道h264_cuvid解码器非常适合我的需要。我还通过ffmpeg -decoders检查了我写的是否正确。因此windows批处理文件(我从其他论坛收集到了弗兰肯斯坦)如下所示:

for %%a in ("*.mkv") do ffmpeg -i "%%a" -c:v h264_cuvid -preset fast -crf 20 -b:v 128k "newfiles\%%~na.m4v"
pause

可悲的是,我得到的只是:

unknown encoder 'h264_cuvid'

我如何解决这个问题

如果从头开始比较容易,那么以下就是我想要实现的目标

我对整个转换/编码的事情还很陌生。我得到了一个树莓pi作为我的视频文件的主服务器。遗憾的是,它只能对正确编码的文件(H.264)进行流式传输,否则Pi会试图对视频本身进行编码(这是导致缓冲的原因)。因此,我试图找到一个解决方案,将我的整个库放入一个文件夹,并将其转换为可用的格式


Tags: 文件项目编码forwindows编解码器解码器论坛
2条回答

如果可以的话,只需重新多路复用

.mkv文件是否已包含H.264或.m4v支持的其他格式?如果是,则可以使用stream copy(重新多路复用)视频,而不必重新编码:

for %%a in ("*.mkv") do ffmpeg -i "%%a" -c:v copy "newfiles\%%~na.m4v"
pause

h264_cuvid是一个解码器

它不是编码器,Raspberry也不支持CUVID。见FFmpeg Wiki: Hardware


如果你必须编码

使用libx264

for %%a in ("*.mkv") do ffmpeg -i "%%a" -c:v libx264 -preset fast -crf 20 -b:v 128k "newfiles\%%~na.m4v"
pause

有关更多信息,请参见FFmpeg Wiki: H.264

或h264_omx用于硬件加速编码

如果您的Raspberry和ffmpeg支持OpenMax,则可以使用h264_omx:

for %%a in ("*.mkv") do ffmpeg -i "%%a" -c:v h264_omx "newfiles\%%~na.m4v"
pause

h264_mmal用于硬件加速解码

如果您的ffmpeg是用 enable-mmal编译的,并且您的Raspberry支持Broadcom多媒体抽象层,并且您的输入视频格式是H.264、VC-1、MPEG-2或MPEG-4,那么您还可以添加硬件解码:

for %%a in ("*.mkv") do ffmpeg -c:v h264_mmal -i "%%a" -c:v h264_omx "newfiles\%%~na.m4v"
pause

我建议您使用另一个编解码器,因为h264_cuvid严格与NVIDIA CUDA相关,当然它不会在Raspberri Pi上运行。为了使用h264_cuvid,您需要一个带有HW编解码器的NVIDIA GPU。有关更多信息,请参见https://developer.nvidia.com/nvidia-video-codec-sdk/download

相关问题 更多 >

    热门问题