我正在努力寻找适用于 awesomium 的编解码器( Chrome 18 iirc)。
为了得到这个,我制作了一个简单的 php 脚本来自动执行此操作。
<?php
$result = shell_exec("ffmpeg -codecs");
$codecs = preg_split("/\r\n|\n|\r/", $result);
for ($i = 10; $i < count($codecs) - 1; $i++) {
$codec = $codecs[$i];
$split = explode(" ", $codec);
$info = $split[1];
if ($info[2] == "V" && $info[1] == "E") { # video codec & encoding supported
$codec = $split[2];
#echo($codec ."\n");
shell_exec("ffmpeg -i 'test.mp4' -c:v $codec 'result/$codec.mp4'");
}
}
?>
但是我有一个问题 - ffmpeg 需要指定输出文件的正确扩展名来确定应该使用什么容器。有没有办法让文件扩展名知道编解码器名称?
或者也许 ffmpeg 有一些参数允许以任何扩展名写入文件(我可以使用
.mp4
ext 保存所有文件,浏览器确定它如何播放视频而不是文件扩展名)。或者也许除了 ffmpeg 之外还有其他实用程序可以帮助我做到这一点。
最佳答案
ffmpeg -h muxer=<muxer>
显示常见的扩展以及默认的视频编解码器。ffmpeg -muxers
显示所有复用器(类似于 -codecs
)。
获取视频编解码器列表进行编码,然后与具有该列表之一的默认视频编解码器的复用器列表进行比较,结果如下表:
编解码器
复用器
通用扩展
a64_multi
a64
a64, A64
apng
apng
apng
bmp
ico
ico
cinepak
电影_cpk
cpk
狄拉克
狄拉克
刚果民主共和国,vc2
dnxhd
dnxhd
dnxhd, dnxhr
dnxhd
mxf_opatom
MXF
视频
DV
DV
适合
适合
适合
flv1
flv
flv
flv1
瑞士法郎
瑞士法郎
gif
gif
gif
h261
h261
h261
h263
3g2
3g2
h263
3gp
3gp
h263
h263
h263
h264
短跑
mpd
h264
f4v
f4v
h264
h264
h264, 264
h264
hls
m3u8
h264
iPod
m4v、m4a、m4b
h264
主义
伊斯玛
h264
马特罗斯卡
MKV
h264
移动
移动
h264
mp4
mp4
h264
psp
mp4、psp
聚氯乙烯
聚氯乙烯
hevc、h265、265
mjpeg
图2
bmp, dpx, jls, jpeg, jpg, ljpg, pam, pbm, pcx, pgm, pgmyuv, png, ppm, sgi, tga, tif, tiff, jp2, j2c, j2k, xwd, 太阳, ras, rs, im1, im8, im24, sunras, xbm, xface, pix, y
mjpeg
mjpeg
mjpg, mjpeg
mjpeg
mpjpeg
.jpg
mpeg1视频
mpeg
mpg, mpg
mpeg1视频
mpeg1视频
mpg, mpeg, m1v
mpeg2视频
DVD
DVD
mpeg2视频
gxf
gxf
mpeg2视频
mpeg2视频
m2v
mpeg2视频
mpegts
ts, m2t, m2ts, mts
mpeg2视频
MXF
MXF
mpeg2视频
svcd
声音
mpeg2视频
声音
声音
mpeg2视频
卫视
卫视
mpeg4
avi
avi
mpeg4
m4v
m4v
mpeg4
坚果
坚果
msmpeg4v3
阿斯夫
asf、wmv、wma
msmpeg4v3
asf_stream
asf、wmv、wma
PNG
爱夫
aif, aiff, afc, aifc
PNG
后缀
后缀
PNG
mp3
mp3
原始视频
幻灯片
电影
原始视频
原始视频
yuv,rgb
roq
roq
roq
房车10
R M
rm, 拉
理论
ogg
ogg
理论
OGV
OGV
VP8
体外受精
体外受精
VP9
网站
网站
网页
网页
网页
Wrapped_avframe
yuv4mpegpipe
y4m
很可能您想自己进行映射,因为您不想支持所有 ffmpeg 可以编码。
关于php - 如何将视频转换为所有可能的编解码器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72527139/