ffmpeg从播放列表

时间:2018-01-20 03:34:38

标签: ffmpeg mpeg-dash

我使用ffmpeg对我的视频进行编码,为mpeg破折号过程做好准备:

ffmpeg -y -i legend.mp4 -c:a copy -c:v libx264 -x264opts 'keyint=48:min-keyint=48:no-scenecut' -r 24 -b:v 1500k -maxrate 1500k -bufsize 1000k -vf "scale=-1:816" out.mp4

这个命令行工作正常,我想知道如何从一系列视频创建如上所述的mp4编码文件? 我试图获得一个更快的过程,我认为我不需要单独编码所有视频和创建一个序列(一个大视频)与后期制作软件..我希望通过一个sigle命令行解决所有问题, 假设所有视频具有相同的帧速率和相同的分辨率,是否有办法为输入提供播放列表以获得播放列表序列中的一个输出视频全部具有相同的编码? 谢谢, 丹

1 个答案:

答案 0 :(得分:0)

#1 使用您的视频列表创建一个文本文件。

Using MyConnection As OleDb.OleDbConnection = FrmCommonCodes.GetConnection(),
    MyCommand As New OleDb.OleDbCommand("SELECT protectioncode FROM settings", MyConnection)
    If MyConnection.State = ConnectionState.Closed Then MyConnection.Open()
    Using MyDataReader As OleDb.OleDbDataReader = MyCommand.ExecuteReader
        While MyDataReader.Read
            GetProtectionCodeCheck = MyDataReader("protectioncode")
        End While
    End Using
End Using
MsgBox(GetProtectionCodeCheck)

#2 Concat他们

file first.mp4
file second.mp4
...
file nth.mp4

此方法要求所有视频具有相同的分辨率。如果存在音频,则所有音频都应该具有相同的编解码器,否则。渠道和抽样率。如果没有,也重新编码音频并强制相同的参数,例如ffmpeg -f concat -i list.txt -c:a copy -c:v libx264 -x264opts 'keyint=48:min-keyint=48:no-scenecut' -r 24 -b:v 1500k -maxrate 1500k -bufsize 1000k -vf "scale=-2:816" out.mp4