使用ffmpeg将任何扩展名的文件转换为MP4

我正在使用youtube-dl和ffmpeg创建youtube下载器和转换器(供个人使用)。我正在尝试下载视频并将其转换为MP4。

我遇到的问题是youtube-dl以各种格式下载视频。有什么方法可以下载视频,然后告诉FFMPEG转换视频,而又不知道当前的文件类型?

我尝试使用*通配符,但这会导致错误。

@echo off
title youtube downloader

set /p name= URL: 
echo Select a type. (vid/mp3/mp4)
set /p type=

IF /i "%type%"=="vid" goto vid
IF /i "%type%"=="mp3" goto mp3
IF /i "%type%"=="mp4" goto mp4

:vid
youtube-dl %name%
goto commonexit

:mp3
youtube-dl -x --audio-format mp3 %name%
goto commonexit

:mp4
youtube-dl -o video %name%
ffmpeg -i video.* video.mp4 -hide_banner

:commonexit
pause
sdwdwz 回答:使用ffmpeg将任何扩展名的文件转换为MP4

youtube-dl在automatically transcode the video to another format中内置了此功能。

请记住,youtube-dl会合并到MKV,因为下载视频的编解码器无法存储在MP4容器中。转换为“ MP4”是一项需要对视频进行转码的任务,这是一种有损操作,并会导致进一步的质量损失。

如果要从YouTube下载,最好选择已经支持多路复用到MP4的格式(h264 / aac,而不是vp9 / opus)。例如,指定格式字符串"bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best"将尝试下载MP4容器中允许的最佳质量的视频和音频。有关更多信息,请参见the format selection examples

如果您正在下载的视频没有必要的编解码器(不太可能),则youtube-dl支持对视频进行转码。使用选项--recode-video mp4以某种方式将视频和音频转换为适合“ MP4”的格式,但是请记住,此操作确实会导致质量损失,而寻找将质量损失/编码时间最小化的选项比一门科学。

本文链接:https://www.f2er.com/3096937.html

大家都在问