【问题标题】:Cutting with ffmpeg a video (recorded with Kodi) gives no image用 ffmpeg 剪切视频(用 Kodi 录制)没有图像
【发布时间】:2018-02-26 08:00:54
【问题描述】:

我正在尝试剪辑从 Kodi 中的 IPTV 插件获得的视频。原始视频可以用VLC、Mplayer、xine等观看,但是复制后没有图像。根据 mediainfo 有一个视频流,但什么都看不到。我使用的命令是:

ffmpeg -y -i test-1.mpeg  -scodec copy -vcodec copy -c:a copy -map 0 -ss 00:00:10.000 -t 00:00:10.000 test-1-cut.mpeg

我认为 Kodi 录制的原始视频有问题,但它们对任何播放器都没有问题。这是一个简短的示例视频:

https://drive.google.com/open?id=0B0WC80aT-4WrSDNENzhxRUxkOXc

带有 -report 选项的输出是这个:

ffmpeg started on 2017-09-10 at 02:27:38
Report written to "ffmpeg-20170910-022738.log"
Command line:
ffmpeg -y -report -i test-1.mpeg -scodec copy -vcodec copy -c:a copy -map 0 -ss 00:00:10.000 -t 00:00:10.000 test-1-cut.mpeg
ffmpeg version 2.8.11-0ubuntu0.16.04.1 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.4) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/i386-linux-gnu --incdir=/usr/include/i386-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enabl  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-i' ... matched as input url with argument 'test-1.mpeg'.
Reading option '-scodec' ... matched as option 'scodec' (force subtitle codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0'.
Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '00:00:10.000'.
Reading option '-t' ... matched as option 't' (record or transcode "duration" seconds of audio/video) with argument '00:00:10.000'.
Reading option 'test-1-cut.mpeg' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url test-1.mpeg.
Successfully parsed a group of options.
Opening an input file: test-1.mpeg.
[mpegts @ 0x8292960] Format mpegts probed with size=2048 and score=100
[mpegts @ 0x8292960] stream=0 stream_type=1b pid=65 prog_reg_desc=
[mpegts @ 0x8292960] stream=1 stream_type=3 pid=c9 prog_reg_desc=
[mpegts @ 0x8292960] stream=2 stream_type=3 pid=ca prog_reg_desc=
[mpegts @ 0x8292960] stream=3 stream_type=6 pid=191 prog_reg_desc=
[mpegts @ 0x8292960] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 14
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 14
[h264 @ 0x8296880] Frame num gap 190 185
[h264 @ 0x8296880] Frame num gap 190 186
[h264 @ 0x8296880] Frame num gap 190 187
[h264 @ 0x8296880] Frame num gap 190 188
[h264 @ 0x8296880] mmco: unref short failure
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] Increasing reorder buffer to 2
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] Increasing reorder buffer to 3
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] no picture ooo
[h264 @ 0x8296880] no picture 
[h264 @ 0x8296880] mmco: unref short failure
[h264 @ 0x8296880] no picture 
[h264 @ 0x8296880] no picture 
[mpegts @ 0x8292960] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
[NULL @ 0x8298500] start time for stream 3 is not set in estimate_timings_from_pts
[mpegts @ 0x8292960] PES packet size mismatch
[mpegts @ 0x8292960] After avformat_find_stream_info() pos: 0 bytes read:4378768 seeks:2 frames:529
Input #0, mpegts, from 'test-1.mpeg':
  Duration: 00:01:21.19, start: 74380.458944, bitrate: 6510 kb/s
  Program 3102 
    Stream #0:0[0x65], 127, 1/90000: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0xc9](esp), 204, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
    Stream #0:2[0xca](vo), 198, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s (clean effects)
    Stream #0:3[0x191](esp), 0, 1/90000: Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Successfully opened the file.
Parsing a group of options: output url test-1-cut.mpeg.
Applying option scodec (force subtitle codec ('copy' to copy stream)) with argument copy.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
Applying option c:a (codec name) with argument copy.
Applying option map (set input stream mapping) with argument 0.
Applying option ss (set the start time offset) with argument 00:00:10.000.
Applying option t (record or transcode "duration" seconds of audio/video) with argument 00:00:10.000.
Successfully parsed a group of options.
Opening an output file: test-1-cut.mpeg.
Successfully opened the file.
[mpeg @ 0x829a0e0] VBV buffer size not set, using default size of 130KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'test-1-cut.mpeg':
  Metadata:
    encoder         : Lavf56.40.101
    Stream #0:0, 0, 1/90000: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc
    Stream #0:1(esp), 0, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, 192 kb/s (clean effects)
    Stream #0:2(vo), 0, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, 128 kb/s (clean effects)
    Stream #0:3(esp), 0, 1/90000: Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
  Stream #0:3 -> #0:3 (copy)
Press [q] to stop, [?] for help
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 14
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 14
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 1 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 1 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 1
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 1
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 5 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 5 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 5
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 5
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 10 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 10 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 10
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 10
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 5 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 5 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 5
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 5
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 1 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 1 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 1
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 1
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 3 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 3 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 3
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 3
frame=  231 fps=0.0 q=-1.0 size=       0kB time=00:00:10.03 bitrate=   0.0kbits/s    
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 13 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 13 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 13
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 13
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 0 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 0 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 0
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 0
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 10 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 9 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 9
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 10
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 6 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 6 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 6
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 6
frame=  231 fps=231 q=-1.0 size=       0kB time=00:00:10.03 bitrate=   0.0kbits/s    
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 0 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 0 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 0
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 0
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 2 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 1 got 7
[mpegts @ 0x8292960] Continuity check failed for pid 100 expected 8 got 1
[mpegts @ 0x8292960] Continuity check failed for pid 0 expected 8 got 2
[mpegts @ 0x8292960] PES packet size mismatch
No more output streams to write to, finishing.
[mpeg @ 0x829a0e0] First SCR: 0 First DTS: 45000
frame=  231 fps=149 q=-1.0 Lsize=    7344kB time=00:00:10.03 bitrate=5995.5kbits/s    
video:6918kB audio:391kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.483494%
Input file #0 (test-1.mpeg):
  Input stream #0:0 (video): 2016 packets read (60807549 bytes); 
  Input stream #0:1 (audio): 3360 packets read (1935360 bytes); 
  Input stream #0:2 (audio): 3363 packets read (1291096 bytes); 
  Input stream #0:3 (subtitle): 0 packets read (0 bytes); 
  Total: 8739 packets (64034005 bytes) demuxed
Output file #0 (test-1-cut.mpeg):
  Output stream #0:0 (video): 231 packets muxed (7083751 bytes); 
  Output stream #0:1 (audio): 417 packets muxed (240192 bytes); 
  Output stream #0:2 (audio): 417 packets muxed (160128 bytes); 
  Output stream #0:3 (subtitle): 0 packets muxed (0 bytes); 
  Total: 1065 packets (7484071 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x82f9860] Statistics: 0 seeks, 3672 writeouts
[AVIOContext @ 0x829b1a0] Statistics: 70457008 bytes read, 2 seeks

根据评论的建议,我尝试了 ffmpeg 最新版本的静态构建。生成的文件再次具有视频流,但播放器无法播放。日志如下:

ffmpeg started on 2017-09-18 at 00:14:22
Report written to "ffmpeg-20170918-001422.log"
Command line:
./ffmpeg -y -report -i test-1.mpeg -scodec copy -vcodec copy -c:a copy -map 0 -ss 00:00:10.000 -t 00:00:10.000 test-1-cut.mpeg
ffmpeg version N-87286-g6ce4a635ed-static http://johnvansickle.com/ffmpeg/  Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.4.0 (Debian 6.4.0-4) 20170820
  configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
  libavutil      55. 74.100 / 55. 74.100
  libavcodec     57.105.100 / 57.105.100
  libavformat    57. 82.100 / 57. 82.100
  libavdevice    57.  8.100 / 57.  8.100
  libavfilter     6.105.100 /  6.105.100
  libswscale      4.  7.103 /  4.  7.103
  libswresample   2.  8.100 /  2.  8.100
  libpostproc    54.  6.100 / 54.  6.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-report' ... matched as option 'report' (generate a report) with argument '1'.
Reading option '-i' ... matched as input url with argument 'test-1.mpeg'.
Reading option '-scodec' ... matched as option 'scodec' (force subtitle codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-vcodec' ... matched as option 'vcodec' (force video codec ('copy' to copy stream)) with argument 'copy'.
Reading option '-c:a' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-map' ... matched as option 'map' (set input stream mapping) with argument '0'.
Reading option '-ss' ... matched as option 'ss' (set the start time offset) with argument '00:00:10.000'.
Reading option '-t' ... matched as option 't' (record or transcode "duration" seconds of audio/video) with argument '00:00:10.000'.
Reading option 'test-1-cut.mpeg' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option report (generate a report) with argument 1.
Successfully parsed a group of options.
Parsing a group of options: input url test-1.mpeg.
Successfully parsed a group of options.
Opening an input file: test-1.mpeg.
[NULL @ 0x4e6d900] Opening 'test-1.mpeg' for reading
[file @ 0x4e6e1a0] Setting default whitelist 'file,crypto'
[mpegts @ 0x4e6d900] Format mpegts probed with size=2048 and score=50
[mpegts @ 0x4e6d900] stream=0 stream_type=1b pid=65 prog_reg_desc=
[mpegts @ 0x4e6d900] stream=1 stream_type=3 pid=c9 prog_reg_desc=
[mpegts @ 0x4e6d900] stream=2 stream_type=3 pid=ca prog_reg_desc=
[mpegts @ 0x4e6d900] stream=3 stream_type=6 pid=191 prog_reg_desc=
[mpegts @ 0x4e6d900] Before avformat_find_stream_info() pos: 0 bytes read:32768 seeks:0 nb_streams:4
[mpegts @ 0x4e6d900] Continuity check failed for pid 0 expected 8 got 14
[mpegts @ 0x4e6d900] Continuity check failed for pid 100 expected 8 got 14
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[AVBSFContext @ 0x4f23c80] nal_unit_type: 9, nal_ref_idc: 0
[AVBSFContext @ 0x4f23c80] nal_unit_type: 7, nal_ref_idc: 3
[AVBSFContext @ 0x4f23c80] nal_unit_type: 8, nal_ref_idc: 3
[AVBSFContext @ 0x4f23c80] nal_unit_type: 6, nal_ref_idc: 0
[AVBSFContext @ 0x4f23c80] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 7, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] Reinit context to 1920x1088, pix_fmt: yuv420p
[h264 @ 0x4e72500] Frame num gap 190 185
[h264 @ 0x4e72500] Frame num gap 190 186
[h264 @ 0x4e72500] Frame num gap 190 187
[h264 @ 0x4e72500] Frame num gap 190 188
[h264 @ 0x4e72500] mmco: unref short failure
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] no picture ooo
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] Increasing reorder buffer to 2
[h264 @ 0x4e72500] no picture ooo
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 0
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] Increasing reorder buffer to 3
[h264 @ 0x4e72500] no picture ooo
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] no picture ooo
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
................. a lot of similar lines .......................
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 2
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] nal_unit_type: 9, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[h264 @ 0x4e72500] nal_unit_type: 6, nal_ref_idc: 0
[h264 @ 0x4e72500] nal_unit_type: 1, nal_ref_idc: 0
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
.......... a lot of similar lines...........
[h264 @ 0x4e72500] ct_type:0 pic_struct:3
[mpegts @ 0x4e6d900] max_analyze_duration 5000000 reached at 5000000 microseconds st:0
[mpegts @ 0x4e6d900] start time for stream 3 is not set in estimate_timings_from_pts
[mpegts @ 0x4e6d900] PES packet size mismatch
[mpegts @ 0x4e6d900] After avformat_find_stream_info() pos: 0 bytes read:4378768 seeks:2 frames:529
Input #0, mpegts, from 'test-1.mpeg':
  Duration: 00:01:21.19, start: 74380.458944, bitrate: 6510 kb/s
  Program 3102 
    Stream #0:0[0x65], 127, 1/90000: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
    Stream #0:1[0xc9](esp), 204, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
    Stream #0:2[0xca](vo), 198, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s (clean effects)
    Stream #0:3[0x191](esp), 0, 1/90000: Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Successfully opened the file.
Parsing a group of options: output url test-1-cut.mpeg.
Applying option scodec (force subtitle codec ('copy' to copy stream)) with argument copy.
Applying option vcodec (force video codec ('copy' to copy stream)) with argument copy.
Applying option c:a (codec name) with argument copy.
Applying option map (set input stream mapping) with argument 0.
Applying option ss (set the start time offset) with argument 00:00:10.000.
Applying option t (record or transcode "duration" seconds of audio/video) with argument 00:00:10.000.
Successfully parsed a group of options.
Opening an output file: test-1-cut.mpeg.
[file @ 0x4eb6020] Setting default whitelist 'file,crypto'
Successfully opened the file.
[mpeg @ 0x4ea6560] VBV buffer size not set, using default size of 130KB
If you want the mpeg file to be compliant to some specification
Like DVD, VCD or others, make sure you set the correct buffer size
Output #0, mpeg, to 'test-1-cut.mpeg':
  Metadata:
    encoder         : Lavf57.82.100
    Stream #0:0, 0, 1/90000: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, bt709, top first), 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 25 tbc
    Stream #0:1(esp), 0, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 192 kb/s (clean effects)
    Stream #0:2(vo), 0, 1/90000: Audio: mp2 ([3][0][0][0] / 0x0003), 48000 Hz, stereo, s16p, 128 kb/s (clean effects)
    Stream #0:3(esp), 0, 1/90000: Subtitle: dvb_subtitle ([6][0][0][0] / 0x0006)
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
  Stream #0:2 -> #0:2 (copy)
  Stream #0:3 -> #0:3 (copy)
Press [q] to stop, [?] for help
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[NULL @ 0x4e72500] nal_unit_type: 7, nal_ref_idc: 3
[NULL @ 0x4e72500] nal_unit_type: 8, nal_ref_idc: 3
[mpegts @ 0x4e6d900] Continuity check failed for pid 0 expected 8 got 14
[mpegts @ 0x4e6d900] Continuity check failed for pid 100 expected 8 got 14
[NULL @ 0x4e72500] ct_type:0 pic_struct:3
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[NULL @ 0x4e72500] ct_type:0 pic_struct:3
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
........... a lot of similar lines .............
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[NULL @ 0x4e72500] ct_type:0 pic_struct:3
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[mpegts @ 0x4e6d900] PES packet size mismatch
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
[NULL @ 0x4e72500] ct_type:0 pic_struct:3
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
cur_dts is invalid (this is harmless if it occurs once at the start per stream)
No more output streams to write to, finishing.
[mpeg @ 0x4ea6560] First SCR: 0 First DTS: 45000
frame=  231 fps=0.0 q=-1.0 Lsize=    7344kB time=00:00:09.99 bitrate=6019.5kbits/s speed=42.1x    
video:6918kB audio:391kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.483494%
Input file #0 (test-1.mpeg):
  Input stream #0:0 (video): 2016 packets read (60807549 bytes); 
  Input stream #0:1 (audio): 3360 packets read (1935360 bytes); 
  Input stream #0:2 (audio): 3363 packets read (1291096 bytes); 
  Input stream #0:3 (subtitle): 0 packets read (0 bytes); 
  Total: 8739 packets (64034005 bytes) demuxed
Output file #0 (test-1-cut.mpeg):
  Output stream #0:0 (video): 231 packets muxed (7083751 bytes); 
  Output stream #0:1 (audio): 417 packets muxed (240192 bytes); 
  Output stream #0:2 (audio): 417 packets muxed (160128 bytes); 
  Output stream #0:3 (subtitle): 0 packets muxed (0 bytes); 
  Total: 1065 packets (7484071 bytes) muxed
0 frames successfully decoded, 0 decoding errors
[AVIOContext @ 0x4ef6300] Statistics: 0 seeks, 3672 writeouts
[AVIOContext @ 0x4e6e040] Statistics: 70457008 bytes read, 2 seeks

【问题讨论】:

  • 为了确保这个问题在这些文件储物柜链接将来被破坏后仍然存在,您能否使用电影快照(例如 4x4 网格静止图像)来说明问题?然后,您可以使用官方 Stack Overflow CDN (imgur.com) 将它们作为图像上传。
  • 感谢您的反馈。快照(可能是电影中的随机图像)不会提供有关该问题的相关信息。我提供了视频的链接,以便任何人都可以通过使用相同的文件作为输入来重现问题。处理此视频和其他视频后,任何播放器都无法复制结果。但是我可以添加日志文件的一部分。
  • 好的,我可以复制所有的日志文件,所以我删除了它的链接。我维护输入视频文件的链接。谢谢
  • 更新您的 ffmpeg 并重试。从johnvansickle.com/ffmpeg获取它
  • 感谢您的意见。我在 johnvansickle.com/ffmpeg 上尝试过静态构建,但结果是一样的。生成的文件有视频流,但播放器无法播放。我将使用新日志更新问题。

标签: video ffmpeg kodi


【解决方案1】:

解决方案已将输出文件的文件名更改为 .ts。 那么命令是:

ffmpeg -y -i test-1.mpeg  -scodec copy -vcodec copy -c:a copy -map 0 -ss 00:00:10.000 -t 00:00:10.000 test-1-cut.ts

.ts 文件从一开始就可以播放。

我不知道它为什么起作用。这个解决方案是我使用的 kodi 插件的开发者建议的。

感谢所有提供反馈的人。

【讨论】:

    猜你喜欢
    • 2017-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2014-01-18
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多