我想将RTSP流转储到文件中。
ffmpeg -y-i rtsp://172.19.12.37/live.sdp -acodec copy -vcodec copy tmp.mp4
但是我有错误
[mp4 @ 0x7fe98400dc00] track 1: could not find tag, codec not currently supported in containerCould not write header for output file #0 (incorrect codec parameters ?): Operation not permitted
但是,我可以通过任何媒体播放器播放RTSP流,我的ffmpeg命令出了什么问题?

是否有任何选项可以转储任何流并将其转储为相同的视频格式。

ffplay日志

$ ffplay rtsp://172.19.12.37/live.sdp
ffplay version 2.1.4 Copyright (c) 2003-2014 the FFmpeg developers
  built on Mar 12 2014 14:37:48 with Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libquvi --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1/include/openjpeg-1.5 '
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
[h264 @ 0x7fb966001c00] RTP: missed 13 packets0KB sq=    0B f=0/0
[h264 @ 0x7fb966001c00] left block unavailable for requested intra mode at 0 86
[h264 @ 0x7fb966001c00] error while decoding MB 0 86, bytestream (347)
[h264 @ 0x7fb966001c00] concealing 5489 DC, 5489 AC, 5489 MV errors in I frame
Input #0, rtsp, from 'rtsp://172.19.12.37/live.sdp':=    0B f=0/0
  Metadata:
    title           : RTSP server
  Duration: N/A, start: 0.000000, bitrate: 64 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p, 2560x1920, 13.33 tbr, 90k tbn, 180k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, 1 channels, s16, 64 kb/s
[h264 @ 0x7fb966888400] left block unavailable for requested intra mode at 0 86
[h264 @ 0x7fb966888400] error while decoding MB 0 86, bytestream (347)
[h264 @ 0x7fb966888400] concealing 5489 DC, 5489 AC, 5489 MV errors in I frame
   5.08 A-V:    nan fd=   2 aq=    0KB vq=    0KB sq=    0B f=1/1

ffmpeg日志
ffmpeg version 2.1.4 Copyright (c) 2000-2014 the FFmpeg developers
  built on Mar 12 2014 14:37:48 with Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn)
  configuration: --prefix=/usr/local/Cellar/ffmpeg/2.1.4 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libfreetype --enable-libtheora --enable-libvorbis --enable-libvpx --enable-librtmp --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc --enable-libass --enable-ffplay --enable-libspeex --enable-libschroedinger --enable-libfdk-aac --enable-openssl --enable-libopus --enable-frei0r --enable-libcaca --enable-libquvi --enable-libopenjpeg --extra-cflags='-I/usr/local/Cellar/openjpeg/1.5.1/include/openjpeg-1.5 '
  libavutil      52. 48.101 / 52. 48.101
  libavcodec     55. 39.101 / 55. 39.101
  libavformat    55. 19.104 / 55. 19.104
  libavdevice    55.  5.100 / 55.  5.100
  libavfilter     3. 90.100 /  3. 90.100
  libavresample   1.  1.  0 /  1.  1.  0
  libswscale      2.  5.101 /  2.  5.101
  libswresample   0. 17.104 /  0. 17.104
  libpostproc    52.  3.100 / 52.  3.100
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://172.19.12.37/live.sdp':
  Metadata:
    title           : RTSP server
  Duration: N/A, start: 0.000000, bitrate: 64 kb/s
    Stream #0:0: Video: h264 (Main), yuv420p, 2560x1920, 13.33 tbr, 90k tbn, 180k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, s16, 64 kb/s
[mp4 @ 0x7fe98400dc00] track 1: could not find tag, codec not currently supported in container
Output #0, mp4, to 'tmp.mp4':
  Metadata:
    title           : RTSP server
    encoder         : Lavf55.19.104
    Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 2560x1920, q=2-31, 90k tbn, 90k tbc
    Stream #0:1: Audio: pcm_mulaw, 8000 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Could not write header for output file #0 (incorrect codec parameters ?): Operation not permitted

最佳答案



这意味着MP4输出容器格式中不允许pcm_mulaw。您的选择是:

使用其他输出容器格式

ffmpeg -i input -codec copy output.mkv

或重新编码音频
ffmpeg -i input -c:v copy -c:a aac output.mp4

关于video - `ffmpeg`无法转储RTSP流,但`ffplay`可以播放,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22345560/

10-14 14:52