土豆大布丁 2022-12-24 15:27 采纳率: 57.1%
浏览 60
已结题

ffmpeg转码国标PS流为固定分辨率1280*720

目前使用不带音频的PS流,使用filter可以缩放为1280*720 但使用音频时 转成. dvd提示不支持的音频流,解析出来的音频流是pcm_alaw 希望可以来个思路,不是文件,是要求最后是要符合PS流,通过代码实现的不是命令行的方式

目的就是为了收到PS流后缩放为1280*720重新再搞成PS流发出去,国标

  • 写回答

4条回答 默认 最新

  • 我不是idol 2022-12-24 18:14
    关注

    可以尝试使用 FFmpeg 对 PS 流进行转码,将音频流转换为支持的格式,然后再通过 PS 流合并工具将视频流和转码后的音频流合并为新的 PS 流。

    具体的步骤如下:

    (1)使用 FFmpeg 对音频流进行转码,将 pcm_alaw 格式的音频流转换为支持的格式(例如 aac 格式)。可以使用如下命令实现:ffmpeg -i input.ps -c:a aac -strict experimental -f mpegts output.ts
    (2)使用 PS 流合并工具将视频流和转码后的音频流合并为新的 PS 流。
    如果需要使用代码实现,可以使用 Python 的 subprocess 模块调用命令行工具进行转码和合并操作。

    具体的代码实现方式可以参考如下示例:

    import subprocess
    
    # 定义转码命令
    cmd = ['ffmpeg', '-i', 'input.ps', '-c:a', 'aac', '-strict', 'experimental', '-f', 'mpegts', 'output.ts']
    
    # 执行转码命令
    subprocess.run(cmd)
    
    # 定义合并命令
    cmd = ['ps_merge', '-i', 'input.ps', '-a', 'output.ts', '-o', 'output.ps']
    
    # 执行合并命令
    subprocess.run(cmd)
    

    上述代码中,使用 subprocess 模块调用了 FFmpeg 和 PS 流合并工具,实现了将 pcm_alaw 格式的音频流转换为 aac 格式,并将视频流和音频流合并为新的 PS 流的操作。

    注意,需要确保使用的命令行工具(FFmpeg 和 PS 流合并工具)已经安装并配置到系统环境变量中,才能正常使用。

    另外,如果需要在合并后的 PS 流中缩放视频分辨率,可以在转码命令中加入视频分辨率参数,例如:

    ffmpeg -i input.ps -c:v libx264 -s 1280x720 -c:a aac -strict experimental -f mpegts output.ts
    

    上述命令中的 -s 1280x720 参数表示将视频分辨率缩放为 1280x720。

    注意,由于视频分辨率的改变会导致视频帧率的变化,因此在使用视频分辨率参数时可能需要额外调整帧率参数,以保证转码后的视频质量。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月4日
  • 已采纳回答 12月27日
  • 修改了问题 12月24日
  • 创建了问题 12月24日

悬赏问题

  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)