ffmpeg命令将不同类型和分辨率的视频连接成1个视频,并且可以在android中播放

时间:2013-08-09 06:18:23

标签: android ffmpeg mp4 encoder decoder

我希望将4种不同分辨率的4种不同视频合并为1种可在Android中播放的视频。我正在使用https://github.com/guardianproject/android-ffmpeg

在ffmpeg上移植到android上

所以我有这4种不同类型的视频 1)

./ffmpeg -i 1.mp4 
Video: h264 (High), yuv420p, 1920x1080, 16959 kb/s, 29.85 fps, 90k tbr, 90k tbn, 180k tbc
Audio: aac, 48000 Hz, stereo, s16, 106 kb/s

2)

ffmpeg -i 2.mp4
Video: h264 (Constrained Baseline), yuv420p, 640x480, 3102 kb/s, 29.99 fps, 90k tbr, 90k tbn, 180k tbc
Audio: aac, 48000 Hz, stereo, s16, 93 kb/s

3)

ffmpeg -i 3.3gp
Video: h263, yuv420p, 1408x1152 [PAR 12:11 DAR 4:3], 2920 kb/s, 15 fps, 15 tbr, 15360 tbn, 29.97 tbc
Audio: amrnb, 8000 Hz, 1 channels, flt, 12 kb/s

4)

ffmpeg -i 4.3gp
Video: h264 (High), yuv420p, 352x288 [PAR 12:11 DAR 4:3], 216 kb/s, 24 fps, 24 tbr, 24 tbn, 48 tbc

音频:aac,44100 Hz,立体声,s16,92 kb / s

所以我使用以下命令将它们转换为mpegts

./ffmpeg -i 1.mp4 -c:v libx264 -vf scale=1920:1080 -r 60 -c:a aac -ar 48000 -b:a 160k -strict experimental -f mpegts 1.ts
./ffmpeg -i 2.mp4 -c:v libx264 -vf scale=1920:1080 -r 60 -c:a aac -ar 48000 -b:a 160k -strict experimental -f mpegts 2.ts
./ffmpeg -i 3.3gp -c:v libx264 -vf scale=1920:1080 -r 60 -c:a aac -ar 48000 -b:a 160k -strict experimental -f mpegts 3.ts
./ffmpeg -i 4.3gp -c:v libx264 -vf scale=1920:1080 -r 60 -c:a aac -ar 48000 -b:a 160k -strict experimental -f mpegts 4.ts

然后将.ts文件连接到f.ts然后使用

从它创建一个最终的.mp4文件
cat 1.ts 2.ts 3.ts 4.ts > f.ts
./ffmpeg -i f.ts -c copy -bsf:a aac_adtstoasc output.mp4

但我的f.ts似乎也没有在Linux上的VLC中正常播放,它播放前2 mp4的视频+音频,它只播放.3gp的音频。(同样也是output.mp4)你能不能请帮帮我搞清楚我错过了什么?

提前致谢

1 个答案:

答案 0 :(得分:4)

将所有视频转换为单一格式后,您可以使用concat逐个附加所有视频。

您还可以使用以下命令将格式不同的视频转换为以下格式:

class MessageUserSettings 
{

    /**
     * @var User
     *
     * @ORM\OneToOne(targetEntity="User", inversedBy="messageSettings")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
     protected $user;

     /***/
}

将所有内容转换为./ffmpeg -i 1.mp4 -acodec libvo_aacenc -vcodec libx264 -s 1920x1080 -r 60 -strict experimental 1.mp4 ,然后按照上面链接中的说明进行操作。这样您就可以将所有视频加入到一个文件中。