2
votes

I am trying to record rtsp stream on HLS format. I need to record both audio and video. Using below command the video and audio get recorded for some stream like a test rtsp stream from Internet rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov. Where as for my IP camera it doesn't work, means the video get recorded but no audio on output file.

./ffmpeg -i rtsp://10.0.8.152:554/media/live/1/1 -acodec copy -vcodec copy -hls_list_size 65535 -hls_time 2 "./live.m3u8"

Here is the command line output for my IP camera while start recording with above command.

ffmpeg version 3.0 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --enable-gpl --enable-libx264 --enable-libfreetype --enable-filter=drawtext --prefix=../build_Mar-20-2016
  libavutil      55. 17.103 / 55. 17.103
  libavcodec     57. 24.102 / 57. 24.102
  libavformat    57. 25.100 / 57. 25.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 31.100 /  6. 31.100
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Guessed Channel Layout for  Input Stream #0.1 : mono
Input #0, rtsp, from 'rtsp://10.0.8.152:554/media/live/1/1':
  Metadata:
    title           : NVT
    comment         : From NVT
  Duration: N/A, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: h264 (Baseline), yuvj420p(pc), 1280x720, 15 fps, 15 tbr, 90k tbn, 30 tbc
    Stream #0:1: Audio: pcm_alaw, 8000 Hz, 1 channels, s16, 64 kb/s
Output #0, hls, to './live.m3u8':
  Metadata:
    title           : NVT
    comment         : From NVT
    encoder         : Lavf57.25.100
    Stream #0:0: Video: h264, yuvj420p, 1280x720, q=2-31, 15 fps, 15 tbr, 90k tbn, 15 tbc
    Stream #0:1: Audio: pcm_alaw, 8000 Hz, mono, 64 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[hls @ 0x33de8c0] Non-monotonous DTS in output stream 0:0; previous: 35985, current: 6000; changing to 35986. This may result in incorrect timestamps in the output file.
[hls @ 0x33de8c0] Non-monotonous DTS in output stream 0:0; previous: 35986, current: 11998; changing to 35987. This may result in incorrect timestamps in the output file.
[hls @ 0x33de8c0] Non-monotonous DTS in output stream 0:0; previous: 35987, current: 14998; changing to 35988. This may result in incorrect timestamps in the output file.
[hls @ 0x33de8c0] Non-monotonous DTS in output stream 0:0; previous: 35988, current: 23991; changing to 35989. This may result in incorrect timestamps in the output file.
[hls @ 0x33de8c0] Non-monotonous DTS in output stream 0:0; previous: 35989, current: 29990; changing to 35990. This may result in incorrect timestamps in the output file.
[hls @ 0x33de8c0] Non-monotonous DTS in output stream 0:0; previous: 35990, current: 35987; changing to 35991. This may result in incorrect timestamps in the output file.
frame=  114 fps= 20 q=-1.0 Lsize=N/A time=00:00:07.59 bitrate=N/A speed=1.32x    
video:924kB audio:60kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Exiting normally, received signal 2.
1
A-law doesn't appear to be supported in .ts files. Try -acodec pcm_s16leGyan
Thanks for the comment, so I can't write video file in HLS format with pcm_s16le codec, and I am able to write the video in avi format with acodec copy ./ffmpeg -i rtsp://10.0.7.122:554/media/live/1/2 -acodec pcm_s16le -vcodec copy "./out.avi". But my final requirement is write file .ts formatHaris

1 Answers

3
votes

MPEG-TS streams support a limited number of audio codecs and PCM a-law appears not to be one of them.

AAC is accepted and can be used as follows:

ffmpeg -i rtsp://10.0.8.152:554/media/live/1/1 -c:a aac -c:v copy -hls_list_size 65535 -hls_time 2 "./live.m3u8"