我使用 从 YouTube 下载视频youtube-dl https://www.youtube.com/....
,但它们的格式是.mp4
。我的电视不支持这种格式,因此我需要以 格式下载它们.avi
。请帮助我 :)
答案1
您可以运行以下命令将所有 mp4 视频转换为 avi:
for i in `find . -type f -name '*.mp4'`; do avconv -i "$i" -qscale 1 "${i/.mp4/.avi}"; done
有关 avconv 的更多信息,请参阅手册页:
man avconv
或者,您可以使用 --recode-video FORMAT 标志下载为特定格式,如下所示(但仅支持的格式是:mp4|flv|ogg|webm|mkv):
youtube-dl --recode-video flv
对于 .flv 格式,后跟 URL。
youtube-dl 的较新版本可能允许重新编码为 avi:
youtube-dl --recode-video avi
如果安装了 ffmpeg,较新版本的 Ubuntu(15.04+)将允许您选择 ffmpeg 而不是 avconv:
youtube-dl --recode-video avi --prefer-ffmpeg
答案2
虽然 mchid 的回答可能会导致您的设备上出现一个可以正常工作的文件,但您不应该仅仅因为您的设备对标准格式很挑剔而默认采用传统的非标准格式就重新编码整个视频。
假设您的设备的最佳格式是AVI
糟糕而愚蠢的。AVI 容器可以与许多不同的格式一起使用(例如 MKV,只是更老更糟糕),尽管它在播客、流媒体和视频点播广泛普及之前在软件中很受欢迎,但它绝不是内容分发的标准。
以下是 avconv 在我的测试用例中所做操作的摘录:
Stream #0:0 -> #0:0 (h264 -> mpeg4)
Stream #0:1 -> #0:1 (aac -> libmp3lame)
什么是 MPEG4?Mediainfo 输出:
Video
ID : 0
Format : MPEG-4 Visual
Format profile : Simple@L1
Format settings, BVOP : No
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Codec ID : FMP4
Duration : 1mn 29s
Bit rate : 3 479 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.056
Stream size : 36.9 MiB (100%)
Writing library : Lavc54.92.100
注意切换到非常旧的 H.263(简单@L1——您可能想研究视频编码中的配置文件和级别的含义……或者最好不要)。当没有提供更多信息时,这是一个合理的默认设置,但除非您真的绝望,否则不应该在现代设备上使用 H.263。
尽管我上传了 1080p PNG 截图(查看全尺寸!),但与原始图片和结果的比较都是通过 JPEG 进行处理的。这只是视频游戏中几乎没有动作的低细节场景。
总结:
- 获得一个不挑剔格式的设备,让你无需浪费时间和精力进行重新编码。
- 使用提供模板的转换器,以通过合理的编码设置实现质量,例如 Handbrake。
- 尝试
-vcodec copy
更改容器,但避免使用 avconv/ffmpeg 重新编码视频。