ffmpeg吧 关注:1,265贴子:4,461
  • 7回复贴,共1

mkv转mp4时怎么将字幕也一起提取?

只看楼主收藏回复

如题,mkv里自带有好几个字幕文件,如果我想转码时把mkv里的其中一个字幕也添加进mp4里,应该在指令里怎么写?


IP属地:内蒙古1楼2020-03-02 19:46回复
    直接用shanencoer多简单,要哪个字幕和音轨都可以选择!不用输命令哪么复杂


    来自Android客户端2楼2020-03-03 01:40
    回复
      我可以帮忙,10元


      3楼2020-03-04 07:14
      回复
        用mkv2mp4


        IP属地:广东来自Android客户端5楼2020-03-17 01:26
        回复
          您好,我可以有偿提供帮助。


          6楼2020-03-18 20:28
          回复
            问题解决了,我自问自答一下吧。。虽然有挖坟的嫌疑,但是还是发出来,希望能对别人有帮助。
            至于为什么不用别的软件,因为楼主是osx系统的,能用的批量转码工具就比较少。另外楼上付费帮做的着实没必要吧,这么简单的东西。
            下面这个批量转码的文件仅仅是支持linux和mac osx系统的,win系统不支持。作用就是批量把一个目录里的mkv全都转码成外挂字母的mp4。想使用的话把虚线里的代码复制到空文件里运行就好了。
            ---------------------------以下是源文件-----------------------------
            #!/bin/sh
            echo 批量转码工具
            filepath=$(cd "$(dirname "$0")"; pwd)
            cd "$filepath"
            echo 转码视频路径:`pwd`
            echo ---------------------------------------
            for file_a in "$filepath"/*
            do
            if [ "${file_a##*.}" = "mkv" ]; then
            echo ${file_a}
            fi
            done
            echo ---------------------------------------
            echo Press any key to continue...
            read
            for file_a in "$filepath"/*
            do
            if [ "${file_a##*.}" = "mkv" ]; then
            in_filename=`basename "$file_a"`
            out_filename=`basename "$file_a" .mkv`
            echo 开始执行:
            echo ${in_filename}
            echo 输出文件名:
            echo ${out_filename}
            ffmpeg -i "$in_filename" -pix_fmt yuv420p -vf "subtitles='$in_filename'" "$out_filename.mp4"
            fi
            done
            echo By Bread_10:淦 折腾了一下午和一晚上
            echo 可以直接转换成支持QuickTime播放的H.264编码
            ---------------------------------------------------------------
            另外windows没有去研究。如果有类似需求的话,虽然没有批量,但是可以一件一件地用命令行转码。用下面这个命令就可以:
            ffmpeg -i 【in_filename】 -pix_fmt yuv420p -vf subtitles=【in_filename】 【out_filename.mp4】
            【in_filename】里填的文件名,【out_filename.mp4】里自己自定义就好了。
            默认是转换成H.264 high profile编码的。


            IP属地:内蒙古7楼2020-09-05 00:52
            回复
              感谢楼主,小白只是想把MKV和字幕文件合并转为MP4,折腾了一圈,看这个帖子成功的
              老手们会觉得太容易了,但是完全没接触过的人真的不知道咋上手
              最后用了上述命令,比如我自己的bat文件里写了:
              ffmpeg -i "519.mkv" -pix_fmt yuv420p -vf subtitles="519.ass" "519.mp4"
              运行后就开始正常转换了


              IP属地:天津8楼2023-04-25 13:48
              收起回复