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

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日

悬赏问题

  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因