[FFmpeg-user] Converting .trm files ("ForTheRecord") -- force AAC decoding?
John A Hawkinson
jhawk at mit.edu
Tue Jun 26 21:07:51 EEST 2018
I got some courtroom audio files today that are .trm files, which are apparently a semi-proprietary format produced by software called ForTheRecord. Living on a Mac, I would like to play them and convert them without using their proprietary Windows software (doesn't work under Wine) or their free web-based player (but thank goodness it exists).
It comes with an accompanying .trs file, which appears to be a UTF-16 encoded XML file that indicates the file format is AAC-based with 4 channels:
<Property Name="audiobitrate" Value="12000" Type="19"/>
<Property Name="audiochannels" Value="4" Type="18"/>
<Property Name="audioformatdescription" Value="MPEG AAC (4180)" Type="8"/>
How can I tell ffmpeg to attempt to use its AAC decoder? I feel like I'm missing something obvious, but maybe I've successfully told it to do so and the AAC decoder is not happy (maybe it's encrypted?).
Here's complete uncut console output from a naive attempt:
pb3:CR24 jhawk$ ffmpeg -c:a aac $t1 t1.wav
ffmpeg version 4.0 Copyright (c) 2000-2018 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.0 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-ffplay --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
[NULL @ 0x7faab1800000] Unable to find a suitable output format for 'CR24_20180621-1449_01d4096f0757ee50.trm'
CR24_20180621-1449_01d4096f0757ee50.trm: Invalid argument
That the error is about an output format gives me some hope (perhaps irrationally).
Also, ffprobe reports it seems to understand the channel structure but not the codec id:
pb3:CR24 jhawk$ ffprobe $t1
ffprobe version 4.0 Copyright (c) 2007-2018 the FFmpeg developers
built with Apple LLVM version 7.0.2 (clang-700.1.81)
configuration: --prefix=/usr/local/Cellar/ffmpeg/4.0 --enable-shared --enable-pthreads --enable-version3 --enable-hardcoded-tables --enable-avresample --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-ffplay --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-opencl --enable-videotoolbox --disable-lzma
libavutil 56. 14.100 / 56. 14.100
libavcodec 58. 18.100 / 58. 18.100
libavformat 58. 12.100 / 58. 12.100
libavdevice 58. 3.100 / 58. 3.100
libavfilter 7. 16.100 / 7. 16.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 1.100 / 5. 1.100
libswresample 3. 1.100 / 3. 1.100
libpostproc 55. 1.100 / 55. 1.100
[avi @ 0x7fcc11009800] Could not find codec parameters for stream 0 (Audio: none ([128]A[0][0] / 0x4180), 24000 Hz, 4 channels, 96 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, avi, from 'CR24_20180621-1449_01d4096f0757ee50.trm':
Duration: 00:05:00.07, start: 0.000000, bitrate: 100 kb/s
Stream #0:0: Audio: none ([128]A[0][0] / 0x4180), 24000 Hz, 4 channels, 96 kb/s
Unsupported codec with id 0 for input stream 0
pb3:CR24 jhawk$
I apologize for being in a little bit of a rush, so I'm asking for help sooner rather than later, but I hope I've included all pertinent information.
Oh yes, here's the XML metadata:
pb3:CR24 jhawk$ recode utf16..utf8 < $s0 | perl -pe 's/</\n</g'
<ContentFile ProgID="FTR.TREdge.ContentFile.TRM" Version="5.1">
<PropertyCollection>
<Property Name="audiobitrate" Value="12000" Type="19"/>
<Property Name="audiochannels" Value="4" Type="18"/>
<Property Name="audioformatdescription" Value="MPEG AAC (4180)" Type="8"/>
<Property Name="duration" Value="843604" Type="21"/>
<Property Name="endtime" Value="131740670012959530" Type="21"/>
<Property Name="label" Value="CR24" Type="8"/>
<Property Name="protected" Value="0" Type="3"/>
<Property Name="size" Value="10615330" Type="20"/>
<Property Name="startdate" Value="6/21/2018" Type="7"/>
<Property Name="starttime" Value="131740661569810000" Type="21"/>
<Property Name="type" Value="trm" Type="8"/>
<Property Name="typedescription" Value="FTR Media" Type="8"/>
</PropertyCollection>
<MediaFiles>
<MediaFile Name="CR24_20180621-1449_01d4096f0757ee50.trm">
<Property Name="StartTime" Value="131740661569810000" Type="21"/>
<Property Name="EndTime" Value="131740664570551978" Type="21"/>
<Property Name="FileComplete" Value="-1" Type="11"/>
<Property Name="AudioStreamCount" Value="7033" Type="19"/>
<Property Name="AudioFrameDuration" Value="426666" Type="21"/>
<Property Name="AudioStartSample" Value="0" Type="19"/>
<Property Name="AudioStreamOffset" Value="0" Type="21"/>
<Property Name="AudioFrameSize" Value="32768" Type="19"/>
<Property Name="AudioConstantFrame" Value="0" Type="3"/>
<Property Name="AudioFormatSize" Value="22" Type="19"/>
<Property Name="AudioFormat" Value="80410400c05d0000e02e0000010010000400401f0000" Type="8"/>
<Property Name="SessionStart" Value="-1" Type="11"/>
</MediaFile>
<MediaFile Name="CR24_20180621-1454_01d4096fbaa19b00.trm">
<Property Name="StartTime" Value="131740664577760000" Type="21"/>
<Property Name="EndTime" Value="131740667578928644" Type="21"/>
<Property Name="FileComplete" Value="-1" Type="11"/>
<Property Name="AudioStreamCount" Value="7034" Type="19"/>
<Property Name="AudioFrameDuration" Value="426666" Type="21"/>
<Property Name="AudioStartSample" Value="7033" Type="19"/>
</MediaFile>
<MediaFile Name="CR24_20180621-1459_01d409706d824cb0.trm">
<Property Name="StartTime" Value="131740667578830000" Type="21"/>
<Property Name="EndTime" Value="131740670012959530" Type="21"/>
<Property Name="FileComplete" Value="-1" Type="11"/>
<Property Name="AudioStreamCount" Value="5705" Type="19"/>
<Property Name="AudioFrameDuration" Value="426666" Type="21"/>
<Property Name="AudioStartSample" Value="14067" Type="19"/>
<Property Name="SessionEnd" Value="-1" Type="11"/>
</MediaFile>
</MediaFiles>
<RepositoryDetails>
<RepositoryDirector Path="C:\TheRecord Recordings\"/>
<RepositoryFiles>
<RepositoryFile Name="CR24_20180621-1449_01d4096f0757ee50.trm"/>
<RepositoryFile Name="CR24_20180621-1454_01d4096fbaa19b00.trm"/>
<RepositoryFile Name="CR24_20180621-1459_01d409706d824cb0.trm"/>
</RepositoryFiles>
</RepositoryDetails>
</ContentFile>
pb3:CR24 jhawk$
Thank you!
--jhawk at mit.edu
John Hawkinson
More information about the ffmpeg-user
mailing list