首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于mpeg-ts编码的FFmpeg命令

用于mpeg-ts编码的FFmpeg命令
EN

Ask Ubuntu用户
提问于 2018-01-24 07:24:54
回答 1查看 40.7K关注 0票数 4

我刚刚开始使用FFmpeg编码器。我有一个命令可以将视频文件编码到mp4容器中:

代码语言:javascript
复制
ffmpeg -i input.mp4 \
       -vcodec libx264 -s 426x240 -pix_fmt yuv420p \
       -crf 22 -minrate 200k -bufsize 400k -maxrate 400k -preset medium \
       -b:v 500000 -profile:v baseline -level 3.1 \
       -c:a aac -strict -2 -b:a 64k -ac 2 \
       output_240.mp4

我需要对应的mpeg-ts编码命令。我在网上搜索了这个,但是由于我是新手,所以找不到我想要的东西。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2018-01-24 11:44:16

和FFmpeg一样,也有很多选择要做,为了给出一个清晰的答案,我缩小了一些范围:

1. TS容器中支持输入文件的编解码器:

使用FFmpeg检查您的输入文件如下:

代码语言:javascript
复制
ffmpeg -i input.mp4

如果该文件包含在TS容器中很好地支持编解码器(例如H.264视频和AAC声音),则只需将流复制到:

代码语言:javascript
复制
ffmpeg -i input.mp4 -c copy output.ts

这将带来很好的效果,尽管您可能需要根据实际使用的输出文件(流、某个回放设备等)更改此命令行。

2. TS容器中不支持输入文件的编解码器:

如果输入文件包含在TS容器中不受良好支持的编解码器,则需要重新编码视频或音频流或两者。FFmpeg和TS容器的默认编解码器是mpeg2video和mp2声音。如果您乐意使用这些默认的编解码器,那么以下内容将产生很好的效果:

代码语言:javascript
复制
ffmpeg -i input.mp4 \
       -c:v mpeg2video -qscale:v 2 \
       -c:a mp2 -b:a 192k \
       output.ts

这确实给我的系统带来了相当合理的结果,也应该对你的.

3.您希望将您的文件分割为HTTP流(HLS):

最后,您可能希望生成一个带有播放列表的分段TS文件,用于(HLS)。与往常一样,有几种方法可以实现这一点,但是下面的示例命令行可以很好地工作在TS容器中支持其编解码器的输入文件:

代码语言:javascript
复制
ffmpeg -re -i input.mp4 \
       -codec copy -map 0 \
       -f segment -segment_list playlist.m3u8 \
       -segment_list_flags +live -segment_time 10 \
       out%03d.ts

如果您希望更改输入文件的编解码器,只需添加所需的设置来代替-codec copy,我相信H.264和AAC是这种流的流行编解码器。有很大的空间来试验分段选项,即在这里描述...

备注:

票数 11
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/999271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档