小公司网站模版,做微网站平台,二维码在线制作,百度怎么精准搜关键词一、错误的命令
通过FFmpeg命令可以将mp4文件转换为ps文件#xff0c;PS文件中包含PS流数据。
由于PS流/PS文件对应的FFInputFormat结构为#xff1a;
const FFInputFormat ff_mpegps_demuxer {.p.name mpeg,.p.long_name NULL_IF_CONFIG_SMALL…一、错误的命令
通过FFmpeg命令可以将mp4文件转换为ps文件PS文件中包含PS流数据。
由于PS流/PS文件对应的FFInputFormat结构为
const FFInputFormat ff_mpegps_demuxer {.p.name mpeg,.p.long_name NULL_IF_CONFIG_SMALL(MPEG-PS (MPEG-2 Program Stream)),.p.flags AVFMT_SHOW_IDS | AVFMT_TS_DISCONT,.priv_data_size sizeof(MpegDemuxContext),.read_probe mpegps_probe,.read_header mpegps_read_header,.read_packet mpegps_read_packet,.read_timestamp mpegps_read_dts,
}; 可以看到上述.p.name mpeg所以理论上通过FFmpeg将mp4文件转换为ps文件的命令为
./ffmpeg -i input.mp4 -vcodec libx264 -f mpeg video1.ps 通过命令./ffmpeg -i XXX.ps可以查看生成的媒体文件的信息 通过vlc也可以直接播放生成的媒体文件并查看其信息 通过上述命令似乎生成了一个MPEG2-PS文件但实际上生成的是一个MPEG-1 系统容器。用Elecard Stream Analyzer工具可以查看到其内部包含的并不是PES流 二、正确的命令
查阅FFmpeg的在线官方文档FFmpeg Formats Documentation
可以看到“mpeg”是MPEG1-PS的多路复用器“vob”才是MPEG2-PS的多路复用器。所以将其它格式的媒体文件转换为MPEG2-PS文件需要加上“-f vob”选项 所以将FFmpeg命令修改为
./ffmpeg -i input.mp4 -vcodec libx264 -acodec pcm_s16be -f vob video2.ps 注意音频编码器不能指定为AAC即不能选择参数“-acodec aac”因为FFmpegFFmpeg7.0.1不支持生成音频压缩编码格式为AAC的MPEG-PS文件。如果指定为AAC会报错Unsupported audio codec. Must be one of mp1, mp2, mp3, 16-bit pcm_dvd, pcm_s16be, ac3 or dts 通过命令./ffmpeg -i XXX.ps可以查看生成的ps文件的信息 用Elecard Stream Analyzer工具可以查看到其内部包含MPEG2-PS的Program Pack、System Header、PES Packet证明这就是MPEG2-PS文件