我的MP4Box有问题,无法将视频连接到一个视频中。我得到了.mp4文件(~103MB),但omxplayer无法播放。我有6个非常简单的.mp4视频,我希望它们合并在一个视频中。到目前为止,我能够用命令做到这一点,没有任何问题:
MP4Box -cat Awards - Recognitions Screens Video.mp4 -cat Cornaro USLUGE video1.mp4 -cat Cornaro USLUGE video1.mp4 -cat DIOCLETIANS_BREAKFAST.mp4 -cat FLAVOURS_OF_DALMATIA.mp4 -cat Prognoza.mp4 -cat Restaurants - Bars 2016.mp4 -cat WineHappyHour3.mp4 -new out.mp4
但现在omxplayer(也是vlc)无法播放.mp4视频。以下是6个视频中每一个的mediainfo输出:
General
Complete name : Awards - Recognitions Screens Video.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 16.8 MiB
Duration : 45s 379ms
Overall bit rate : 3 114 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 45s 379ms
Bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.048
Stream size : 16.8 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
General
Complete name : Cornaro USLUGE video1.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 22.8 MiB
Duration : 1mn 13s
Overall bit rate : 2 624 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1mn 13s
Bit rate : 2 621 Kbps
Nominal bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.042
Stream size : 22.8 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
General
Complete name : DIOCLETIANS_BREAKFAST.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 11.6 MiB
Duration : 33s 0ms
Overall bit rate : 2 950 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 33s 0ms
Bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.048
Stream size : 11.6 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
General
Complete name : FLAVOURS_OF_DALMATIA.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 11.4 MiB
Duration : 33s 0ms
Overall bit rate : 2 891 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 33s 0ms
Bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.048
Stream size : 11.4 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
General
Complete name : Prognoza.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 3.27 MiB
Duration : 10s 44ms
Overall bit rate : 2 733 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 10s 44ms
Bit rate : 2 730 Kbps
Nominal bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.044
Stream size : 3.27 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English`
General
Complete name : Restaurants - Bars 2016.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 33.4 MiB
Duration : 1mn 35s
Overall bit rate : 2 929 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 1mn 35s
Bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.048
Stream size : 33.4 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
General
Complete name : WineHappyHour3.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 4.10 MiB
Duration : 13s 581ms
Overall bit rate : 2 533 Kbps
Writing application : Lavf55.33.101
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 13s 581ms
Bit rate : 2 530 Kbps
Nominal bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.041
Stream size : 4.10 MiB (100%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
所以所有的6个视频都有很好的mediainfo输出,但我尝试在没有1个视频的情况下执行命令进行测试(一个接一个),然后合并它们,但结果相同。当我执行mp4box命令时,我得到了奇怪的命令行输出:
Appending file Awards - Recognitions Screens Video.mp4
No suitable destination track found - creating new one (type vide)
Appending file Cornaro USLUGE video1.mp4
Appending file Cornaro USLUGE video1.mp4
No suitable destination track found - creating new one (type vide)
Appending file DIOCLETIANS_BREAKFAST.mp4
Appending file FLAVOURS_OF_DALMATIA.mp4
Appending file Prognoza.mp4
Appending file Restaurants - Bars 2016.mp4
No suitable destination track found - creating new one (type vide)
Appending file WineHappyHour3.mp4
Saving out.mp4: 0.500 secs Interleaving
以下是out.mp4视频的mediainfo:
General
Complete name : out.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 126 MiB
Duration : 4mn 50s
Overall bit rate : 3 651 Kbps
Encoded date : UTC 2016-06-10 15:32:13
Tagged date : UTC 2016-06-10 15:32:13
Video #1
ID : 1
Format : avc3
Codec ID : avc3
Duration : 1mn 58s
Bit rate : 2 809 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Bits/(Pixel*Frame) : 0.045
Stream size : 39.6 MiB (31%)
Language : English
Tagged date : UTC 2016-06-10 15:32:15
Video #2
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 4mn 41s
Source duration : 3mn 28s
Bit rate : 2 143 Kbps
Nominal bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 23.432 fps
Minimum frame rate : 0.022 fps
Maximum frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.044
Stream size : 53.1 MiB (42%)
Source stream size : 53.1 MiB (42%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
Tagged date : UTC 2016-06-10 15:32:15
Video #3
ID : 3
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L5.1
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 4mn 50s
Source duration : 1mn 35s
Nominal bit rate : 3 000 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 29.970 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.048
Source stream size : 33.4 MiB (26%)
Writing library : x264 core 142 r2389 956c8d8
Encoding settings : cabac=1 / ref=1 / deblock=1:0:0 / analyse=0x1:0 / me=dia / subme=2 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=0 / threads=6 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Language : English
Tagged date : UTC 2016-06-10 15:32:15
正如你所注意到的,"#"视频部分正好是"找不到合适的目的地曲目…"行,这很奇怪。到目前为止,最接近解决我的问题的是这个命令:
MP4Box -force-cat -add Awards - Recognitions Screens Video.mp4 -cat Cornaro USLUGE video1.mp4 -cat Cornaro USLUGE video1.mp4 -cat DIOCLETIANS_BREAKFAST.mp4 -cat FLAVOURS_OF_DALMATIA.mp4 -cat Prognoza.mp4 -cat Restaurants - Bars 2016.mp4 -cat WineHappyHour3.mp4 out.mp4
但它连续两次显示第二个视频(Cornaro USLUGE video1.mp4),然后休息正常。我真的不知道该怎么办。任何帮助都将不胜感激。
这是https://github.com/gpac/gpac/issues/549答案是:FFmpeg有时会在SPS中添加标准杆数可选字段。因此,MP4Box检测到不同的SPS,无法合并。
GPAC是否应该能够检测到这一变化作为一种变通方法,目前仍在讨论中。请就根本问题发表意见:https://github.com/gpac/gpac/issues/13.
NB@IncBrain:bs切换是DASH的一个功能,而不是MP4。
感谢您的帮助,但我需要使用MP4Box来合并视频,而不是ffmpeg,因为我的RPi3上只安装了MP4Box。无论如何,更改了命令,可以确认这项工作像魅力(即使视频缺少标准杆数参数信息):
MP4Box -force-cat -cat Awards - Recognitions Screens Video.mp4 -cat Cornaro USLUGE video1.mp4 -cat Cornaro USLUGE video1.mp4 -cat DIOCLETIANS_BREAKFAST.mp4 -cat FLAVOURS_OF_DALMATIA.mp4 -cat Prognoza.mp4 -cat Restaurants - Bars 2016.mp4 -cat WineHappyHour3.mp4 output.mp4
您也可以使用ffmpeg
来连接您的mp4文件,如下所述:
首先,您必须将视频转码为MPEG2-TS,如下所示:
ffmpeg -i vid1.mp4 -c:v copy -bsf:v h264_mp4toannexb -f mpegts inter1.ts
ffmpeg -i vid2.mp4 -c:v copy -bsf:v h264_mp4toannexb -f mpegts inter2.ts
ffmpeg -i vid3.mp4 -c:v copy -bsf:v h264_mp4toannexb -f mpegts inter3.ts
...
然后将它们连接到:
ffmpeg -i "concat:inter1.ts|inter2.ts|inter3.ts" -c copy out.mp4
我用你的视频(你在github上发布的链接)测试了它,它运行得很好。
也有可能在不使用命名管道创建中间.ts文件的情况下做到这一点,这可能看起来类似于以下内容:
mkfifo temp1 temp2
ffmpeg -i input1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp1 2> /dev/null &
ffmpeg -i input2.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts temp2 2> /dev/null &
ffmpeg -f mpegts -i "concat:temp1|temp2" -c copy output.mp4
但它在行中显示了两次第二个视频(Cornaro USLUGE video1.mp4)
在我看来,您从命令行添加了两次。