声网本地录制使用转码参数-m 0时失败

使用参数 -m 0的转码日志(convert.log)输出信息:
Offset_time : 0
UID:1721794423_20200111020408963
DEBUG:True:[‘0.000 1721794423_20200111020408963.aac create \n’, ‘6.470 1721794423_20200111020408963.aac close \n’]
Audio Clip: : start_time=0.000, end_time=0.000
Audio Clip 0: 1721794423_20200111020408963.aac: start_time=0.000, end_time=6.470
Generate Audio File
==============================audio ffmpeg=====================================
ffmpeg -y -f lavfi -t 0.001 -i anullsrc=channel_layout=mono:sample_rate=48000 -i 1721794423_20200111020408963.aac -filter_complex “concat=n=2:v=0:a=1[audio]” -map “[audio]” -to 6.470000 -y 1721794423_20200111020408963_tmp.m4a 2>&1 | tee -a convert.log
ffmpeg -y -f lavfi -t 0.001 -i anullsrc=channel_layout=mono:sample_rate=48000 -i 1721794423_20200111020408963.aac -filter_complex “concat=n=2:v=0:a=1[audio]” -map “[audio]” -to 6.470000 -y 1721794423_20200111020408963_tmp.m4a 2>&1 | tee -a convert.log
ffmpeg version 3.3-static http://johnvansickle.com/ffmpeg/ Copyright © 2000-2017 the FFmpeg developers
built with gcc 5.4.1 (Debian 5.4.1-8) 20170304
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-5 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gray --enable-libass --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg
libavutil 55. 58.100 / 55. 58.100
libavcodec 57. 89.100 / 57. 89.100
libavformat 57. 71.100 / 57. 71.100
libavdevice 57. 6.100 / 57. 6.100
libavfilter 6. 82.100 / 6. 82.100
libswscale 4. 6.100 / 4. 6.100
libswresample 2. 7.100 / 2. 7.100
libpostproc 54. 5.100 / 54. 5.100
Input #0, lavfi, from ‘anullsrc=channel_layout=mono:sample_rate=48000’:
Duration: N/A, start: 0.000000, bitrate: 384 kb/s
Stream #0:0: Audio: pcm_u8, 48000 Hz, mono, u8, 384 kb/s
[aac @ 0x57b5bc0] Estimating duration from bitrate, this may be inaccurate
Input #1, aac, from ‘1721794423_20200111020408963.aac’:
Duration: 00:00:06.77, bitrate: 46 kb/s
Stream #1:0: Audio: aac (LC), 48000 Hz, mono, fltp, 46 kb/s
Stream mapping:
Stream #0:0 (pcm_u8) -> concat:in0:a0
Stream #1:0 (aac) -> concat:in1:a0
concat -> Stream #0:0 (aac)
Press [q] to stop, [?] for help
Output #0, ipod, to ‘1721794423_20200111020408963_tmp.m4a’:
Metadata:
encoder : Lavf57.71.100
Stream #0:0: Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 69 kb/s (default)
Metadata:
encoder : Lavc57.89.100 aac
size= 53kB time=00:00:06.48 bitrate= 67.4kbits/s speed=55.3x
video:0kB audio:51kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 3.738371%
[aac @ 0x57b8280] Qavg: 6034.108
mv 1721794423_20200111020408963_tmp.m4a 1721794423_20200111020408963.m4a

使用-m 1的时候倒是能够成功 究竟是什么原因呢

你是怎么判断转码失败的呢?文件夹下没有生成 convert-done.txt 文件,也没有生成新的 mp4 文件吗?
麻烦请打包压缩整个录制文件夹,上传过来,然后提供转码参数,我们来本地测试一下。

record_data.zip.zip (68.9 KB)
有convert-done.txt文件,但没有mp4文件

收到

麻烦啦:sweat_smile:

我这边确认了一下,关于这个问题是这样的:你的录制文件夹里就只有一个 acc 音频文件,没有视频文件。由于设计机制不同,m 设为 0 时是根据文件夹中的 .txt 进行合并,如果只有音频文件,那么会将其转码为 m4a 音频文件,不会转成 mp4。而 m 设为 1 时是根据 uid 进行合并,所以会对只有音频的 uid 补视频黑帧,才能连接不同 txt。你 m 设为 1 时合并出来的 mp4 也只有音频,没有视频的。

哦哦 好的好的 我还以为每次都会合成mp4文件 3Q:smile:

嗯嗯