我想编辑带有音频视频字幕流的输入mp4文件,我可以通过以下方式成功剪切视频和音频流: 1-将每个部件转换为新的mp4文件 2-将mp4文件转换为mpg文件
ffmpeg -i out00.mp4 -qscale:v 0 intermediate1.mpg
ffmpeg -i out01.mp4 -qscale:v 0 intermediate2.mpg
3-合并mpg文件
ffmpeg -i concat:"intermediate1.mpg|intermediate2.mpg" -c copy intermediate_all.mpg
4-将mpg文件转换回mp4
ffmpeg -i intermediate_all.mpg -f mp4 output.mp4
我可以将字幕流提取到srt文件,但是我不能剪切字幕文件的部分内容,你知道怎么做吗?
答案 0 :(得分:3)
好的,经过长时间的搜索旅行后,这里的确如此:
1-从here下载最新的FFMPEG(这对我造成了很多问题)。
2-将字幕添加到输入文件中:
ffmpeg -i "input.mkv" -i subtitles.srt -c copy -c:s srt -metadata:s:s:1 language=eng -map 0 -map 1 -map_metadata 0 output.mkv
3-切割你需要的部分,正常情况下,ffmpeg也会剪切字幕流
ffmpeg -i input.mkv -ss 00:00:00 -t 00:01:35 -c copy -map 0:0 -map 0:1 -map 0:2 -qscale:0:V 0 -y out0.mkv
4-使用concat demux加入剪切文件:
ffmpeg -f concat -i mylist.txt -c copy output.mkv
其中mylist.txt包含:
文件out0.mkv
文件out1.mkv
享受:)。
答案 1 :(得分:1)
我认为您必须手动编辑srt(文本需要显示的文本和时间码)并使用以下命令将其重新播放到最终视频:
ffmpeg -i EditedSource.mp4 -i EditedSub.srt -c copy -map 0:a -map 0:v -map 1:s output.mp4
而不是创建这些中间文件,您尝试过:
ffmpeg -i out00.mp4 -i out01.mp4 -filter_complex '[0][1]concat=n=2:v=1:a=1 [v][a]' -map '[v]' -map '[a]' output.mp4