php - 如何将视频转换为所有可能的编解码器?

标签 php ffmpeg

我正在努力寻找适用于 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/

相关文章:

javascript - 单击链接时如何刷新特定 div 内容以及链接 id?

php - 正则表达式中的可选字符

audio - SoX 重新采样和转换

linux - FFmpeg 自动同步音视频

ffmpeg : Invalid file index 3 in filtergraph description

php - 在 Laravel 中配置 Redis 时遇到的问题

php - 如何仅允许白名单网站嵌入 iframe?

php - 多列关联数组的 CSS 格式化

python - 导入av时无法使用opencv显示图像

video - FFMPEG:将 UHD H265 转码为 SDR H264 而不会丢失颜色