命令编码 h264 基线配置文件,级别 1,使用 FFmpeg 和 libx264

Mor*_*ani 5 ffmpeg video-streaming

任何人都可以建议将视频编码为 h264 基线配置文件(级别 1)的命令吗?

这里有一个链接供参考:http : //blog.mediacoderhq.com/h264-profiles-and-levels/

我使用了这个命令,但 FFmpeg 说它是主配置文件,而不是基线。

ffmpeg -i <SOURCE> -vcodec libx264 -coder 0 -flags +loop+mv4 \
-partitions +parti4x4+parti8x8+parti4x4+partp8x8+partb8x8 -me_method hex -subq 7 \
-trellis 1 -refs 5 -bf 0 -flags2 +mixed_refs -coder 0 -me_range 16 -threads 2 \
-s 240x160 -b:v 64k -g 250 -keyint_min 25 -sc_threshold 40 -i_qfactor 0.71 \
-qmin 10 -qmax 51 -qdiff 4 -strict experimental -acodec aac -ac 1 -ab 48000 \
-f mpegts udp://127.0.0.1:10006?pkt_size=1316
Run Code Online (Sandbox Code Playgroud)

slh*_*hck 8

确保你有最新的 FFmpeg 和 libx264——这真的很重要* ——然后尝试像这样:

ffmpeg -i … -c:v libx264 -profile:v baseline -level 1 …
Run Code Online (Sandbox Code Playgroud)

这将导致:

[libx264 @ 0x10180fa00] profile Constrained Baseline, level 1.0
Run Code Online (Sandbox Code Playgroud)

当然,您也可以为 x264提供-preset-tune选项。x264 --fullhelp有关更多信息,请参阅。

以下是使用的 x264 选项:

cabac=0 ref=3 deblock=1:0:0 analyse=0x1:0x111 me=hex subme=7 psy=1
psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 trellis=1 8x8dct=0 
cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 threads=12 
sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0
constrained_intra=0 bframes=0 weightp=0 keyint=250 
keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 
rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 
qpstep=4 ip_ratio=1.40 aq=1:1.00
Run Code Online (Sandbox Code Playgroud)

* 它适用于 FFmpeg 0.9 和 x264 核心 118。该-vprofile选项在 FFmpeg 中没有记录,现在是-profile:v. 它现在基本上可以正常工作-profile,应该再次替换-vpre. 它使用 x264 的内置配置文件而不是依赖.ffpreset文件。