
Recherche avancée
Autres articles (55)
-
Websites made with MediaSPIP
2 mai 2011, parThis page lists some websites based on MediaSPIP.
-
Gestion générale des documents
13 mai 2011, parMédiaSPIP ne modifie jamais le document original mis en ligne.
Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...) -
Creating farms of unique websites
13 avril 2011, parMediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)
Sur d’autres sites (5330)
-
FFMPEG Unable to find a suitable output format for 'pipe :' pipe: : Invalid argument
1er avril 2021, par ashiyaa nunhuckI want to stream video from my drone real time to a WEBUI using ffmpeg. But i get the follwong errors.
The code works but i don't think ishould have gotten this error.
Can somebody help with this issue ? This is my drone commands along with the streaming video codes. I have only added the code to get data.
Below is the error :
pipe error


My code is as follows :


logger = logging.getLogger(__name__)

DEFAULT_DISTANCE = 0.30
DEFAULT_SPEED = 10
DEFAULT_DEGREE = 10

FRAME_X = int(960/3)
FRAME_Y = int(720/3)
FRAME_AREA = FRAME_X * FRAME_Y

FRAME_SIZE = FRAME_AREA * 3
FRAME_CENTER_X = FRAME_X / 2
FRAME_CENTER_Y = FRAME_Y / 2

CMD_FFMPEG = (f'ffmpeg - hwaccel auto -hwaccel_device opencl -i pipe:0 '
 f'-pix_fmt bgr24 -s {FRAME_X}x{FRAME_Y} -f rawvideo pipe:1')


class DroneManager(metaclass=Singleton):
 def __init__(self, host_ip='192.168.10.2', host_port=8890,
 drone_ip='192.168.10.1', drone_port=8889,
 is_imperial=False, speed=DEFAULT_SPEED):
 self.host_ip = host_ip
 self.host_port = host_port
 self.drone_ip = drone_ip
 self.drone_port = drone_port
 self.drone_address = (drone_ip, drone_port)
 self.is_imperial = is_imperial
 self.speed = speed
 self.socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 self.socket.bind((self.host_ip, self.host_port))

 self.response = None
 self.stop_event = threading.Event()
 self._response_thread = threading.Thread(target=self.receive_response,
 args=(self.stop_event,))
 self._response_thread.start()

 self.patrol_event = None
 self.is_patrol = False
 self._patrol_semaphore = threading.Semaphore(1)
 self._thread_patrol = None

 self.proc = subprocess.Popen(CMD_FFMPEG.split(' '),
 stdin=subprocess.PIPE,
 stdout=subprocess.PIPE)
 self.proc_stdin = self.proc.stdin
 self.proc_stdout = self.proc.stdout

 self.video_port = 11111

 self._receive_video_thread = threading.Thread(
 target=self.receive_video,
 args=(self.stop_event, self.proc_stdin,
 self.host_ip, self.video_port,))
 self._receive_video_thread.start()

 self.send_command('command')
 self.send_command('streamon')
 self.set_speed(self.speed)

 def receive_response(self, stop_event):
 while not stop_event.is_set():
 try:
 self.response, ip = self.socket.recvfrom(3000)
 logger.info({'action': 'receive_response',
 'response': self.response})
 except socket.error as ex:
 logger.error({'action': 'receive_response',
 'ex': ex})
 break

 def __dell__(self):
 self.stop()

 def stop(self):
 self.stop_event.set()
 retry = 0
 while self._response_thread.is_alive():
 time.sleep(0.3)
 if retry > 30:
 break
 retry += 1
 self.socket.close()
 os.kill(self.proc.pid, signal.CTRL_C_EVENT)

 def send_command(self, command):
 logger.info({'action': 'send_command', 'command': command})
 self.socket.sendto(command.encode('utf-8'), self.drone_address)

 retry = 0
 while self.response is None:
 time.sleep(0.3)
 if retry > 3:
 break
 retry += 1

 if self.response is None:
 response = None
 else:
 response = self.response.decode('utf-8')
 self.response = None
 return response

 def takeoff(self):
 return self.send_command('takeoff')

 def land(self):
 return self.send_command('land')

 def move(self, direction, distance):
 distance = float(distance)
 if self.is_imperial:
 distance = int(round(distance * 30.48))
 else:
 distance = int(round(distance * 100))
 return self.send_command(f'{direction} {distance}')

 def up(self, distance=DEFAULT_DISTANCE):
 return self.move('up', distance)

 def down(self, distance=DEFAULT_DISTANCE):
 return self.move('down', distance)

 def left(self, distance=DEFAULT_DISTANCE):
 return self.move('left', distance)

 def right(self, distance=DEFAULT_DISTANCE):
 return self.move('right', distance)

 def forward(self, distance=DEFAULT_DISTANCE):
 return self.move('forward', distance)

 def back(self, distance=DEFAULT_DISTANCE):
 return self.move('back', distance)

 def set_speed(self, speed):
 return self.send_command(f'speed {speed}')

 def clockwise(self, degree=DEFAULT_DEGREE):
 return self.send_command(f'cw {degree}')

 def counter_clockwise(self, degree=DEFAULT_DEGREE):
 return self.send_command(f'ccw {degree}')

 def flip_front(self):
 return self.send_command('flip f')

 def flip_back(self):
 return self.send_command('flip b')

 def flip_left(self):
 return self.send_command('flip l')

 def flip_right(self):
 return self.send_command('flip r')

 def patrol(self):
 if not self.is_patrol:
 self.patrol_event = threading.Event()
 self._thread_patrol = threading.Thread(
 target=self._patrol,
 args=(self._patrol_semaphore, self.patrol_event,))
 self._thread_patrol.start()
 self.is_patrol = True

 def stop_patrol(self):
 if self.is_patrol:
 self.patrol_event.set()
 retry = 0
 while self._thread_patrol.is_alive():
 time.sleep(0.3)
 if retry > 300:
 break
 retry += 1
 self.is_patrol = False

 def _patrol(self, semaphore, stop_event):
 is_acquire = semaphore.acquire(blocking=False)
 if is_acquire:
 logger.info({'action': '_patrol', 'status': 'acquire'})
 with contextlib.ExitStack() as stack:
 stack.callback(semaphore.release)
 status = 0
 while not stop_event.is_set():
 status += 1
 if status == 1:
 self.up()
 if status == 2:
 self.clockwise(180)
 if status == 3:
 self.down()
 if status == 4:
 status = 0
 time.sleep(5)
 else:
 logger.warning({'action': '_patrol', 'status': 'not_acquire'})

 def receive_video(self, stop_event, pipe_in, host_ip, video_port):
 with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as sock_video:
 sock_video.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
 sock_video.settimeout(5)
 sock_video.bind((host_ip, video_port))
 data = bytearray(2048)
 while not self.stop_event.is_set():
 try:
 size, addr = sock_video.recvfrom_into(data)
 logger.info({'action': 'receive_video', 'data': data})
 except socket.timeout as ex:
 logger.warning({'action': 'receive_video', 'ex': ex})
 time.sleep(0.5)
 continue
 except socket.error as ex:
 logger.error({'action': 'receive_video', 'ex': ex})
 break

 try:
 pipe_in.write(data[:size])
 pipe_in.flush()
 except Exception as ex:
 logger.info({'action': 'receive_video', 'ex': ex})
 break



-
Anomalie #4623 : Styles des fieldset dans l’espace privé
16 avril 2021, par nicod _Le principe est pas mal, mais je n’aime pas trop ces dégradés sur la fin des bordures, ça fait "pas net" et ça ne correspond à aucun autre élément d’UI.
Tu as essayé avec juste une bordure à gauche, mais très légère (en luminosité/opacité) et épaisse (0.33em) ?Pétouille : au niveau des marges, la légende d’un fieldset imbriqué devrait être plus proche de ses champs, que des champs du fieldset parent.
Et je trouve bizarre que l’input du fieldset imbriqué soit décalé lui aussi vers la droite, même si ça parait logique, c’est bizarre visuellement. -
Not able to trim video using "com.arthenica:mobile-ffmpeg-full:4.4"
20 avril 2021, par UMESH GARGI need help in trimming the video in android using : 'mobile-FFmpeg


I posted my code below, which I used to trim the video but every time it goes to the else block(every it fails for android:11,9).
Please help me out.
Thanks in advance


Code :
val cmd = arrayOf("-i", trimmerData.srcPath, "-ss", startTime, "-t", endTime,
"-s", "320x240", "-r", "25", "-vcodec", "mpeg4", "-b:v", "2097152", "-b:a", "48000", "-ac", "2", "-ar", "22050",
"-c", "copy", trimmerData.dstPath)


val rc = FFmpeg.execute(cmd)

 if (rc == RETURN_CODE_SUCCESS) {
 Log.i(Config.TAG, "Command execution completed successfully.")
 scanTrimFile(trimmerData)
 } else if (rc == RETURN_CODE_CANCEL) {
 Log.i(Config.TAG, "Command execution cancelled by user.")
 } else {
 Log.i(Config.TAG, String.format("Command execution failed with rc=%d and the output below.", rc))
 Config.printLastCommandOutput(Log.INFO)
 showTrimmingError()
 }

private fun scanTrimFile(trimmerData: TrimmerData) {
mediaScannerConnection = MediaScannerConnection(this,
object : MediaScannerConnection.MediaScannerConnectionClient {
override fun onMediaScannerConnected() {
mediaScannerConnection.scanFile(trimmerData.dstPath, "video/*")
}

 override fun onScanCompleted(path: String?, uri: Uri?) {
 mediaScannerConnection.disconnect()
 dismissWaitingDialog()
 getResult(Uri.parse(trimmerData.dstPath))
 }

 })
 mediaScannerConnection.connect()
}



Logs :


2021-04-20 13:05:12.869 27051-27051/org.xyz.abc I/mobile-ffmpeg: Loading mobile-ffmpeg.
2021-04-20 13:05:12.880 27051-27051/org.xyz.abc I/mobile-ffmpeg: Loaded mobile-ffmpeg-full-arm64-v8a-4.4-20200725.
2021-04-20 13:05:12.880 27051-30377/org.xyz.abc D/mobile-ffmpeg: Callback thread started.
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: ffmpeg version v4.4-dev-416
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: Copyright (c) 2000-2020 the FFmpeg developers
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libavutil 56. 55.100 / 56. 55.100
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libavcodec 58. 96.100 / 58. 96.100
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libavformat 58. 48.100 / 58. 48.100
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libavdevice 58. 11.101 / 58. 11.101
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libavfilter 7. 87.100 / 7. 87.100
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libswscale 5. 8.100 / 5. 8.100
2021-04-20 13:05:12.881 27051-30377/org.xyz.abc I/mobile-ffmpeg: libswresample 3. 8.100 / 3. 8.100
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Android/data/org.xyz.abc/files/Tch Plus Recorder/tch_video_1618904094681.mp4':
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: Metadata:
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: major_brand : 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: mp42
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: minor_version : 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 0
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: compatible_brands: 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: isommp42
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: creation_time : 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 2021-04-20T07:35:06.000000Z
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: com.android.version: 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 11
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: Duration: 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 00:00:10.07
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: , start: 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 0.000000
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: , bitrate: 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 12089 kb/s
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: Stream #0:0
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: (eng)
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: : Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 11998 kb/s
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: , SAR 1:1 DAR 16:9
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: , 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 29.81 fps, 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 30 tbr, 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 90k tbn, 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 180k tbc
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: (default)
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: Metadata:
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: rotate : 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 90
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: creation_time : 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: 2021-04-20T07:35:06.000000Z
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: handler_name : 
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: VideoHandle
2021-04-20 13:05:12.897 27051-30377/org.xyz.abc I/mobile-ffmpeg: Side data:
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: 
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: displaymatrix: rotation of -90.00 degrees
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: Stream #0:1
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: (eng)
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: : Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: (default)
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: Metadata:
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: creation_time : 
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: 2021-04-20T07:35:06.000000Z
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: handler_name : 
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc I/mobile-ffmpeg: SoundHandle
2021-04-20 13:05:12.898 27051-30377/org.xyz.abc E/mobile-ffmpeg: /storage/emulated/0/TchTrimVideo/tch_trim_Video1618904108454.mp4: No such file or directory
2021-04-20 13:05:12.898 27051-27051/org.xyz.abc I/mobile-ffmpeg: Command execution failed with rc=1 and the output below.
2021-04-20 13:05:12.899 27051-27051/org.xyz.abc I/mobile-ffmpeg: ffmpeg version v4.4-dev-416 Copyright (c) 2000-2020 the FFmpeg developers
 built with Android (6454773 based on r365631c2) clang version 9.0.8 (https://android.googlesource.com/toolchain/llvm-project 98c855489587874b2a325e7a516b99d838599c6f) (based on LLVM 9.0.8svn)
 configuration: --cross-prefix=aarch64-linux-android- --sysroot=/files/android-sdk/ndk/21.3.6528147/toolchains/llvm/prebuilt/linux-x86_64/sysroot --prefix=/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/ffmpeg --pkg-config=/usr/bin/pkg-config --enable-version3 --arch=aarch64 --cpu=armv8-a --cc=aarch64-linux-android24-clang --cxx=aarch64-linux-android24-clang++ --extra-libs='-L/home/taner/Projects/mobile-ffmpeg/prebuilt/android-arm64/cpu-features/lib -lndk_compat' --target-os=android --enable-neon --enable-asm --enable-inline-asm --enable-cross-compile --enable-pic --enable-jni --enable-optimizations --enable-swscale --enable-shared --enable-v4l2-m2m --disable-outdev=fbdev --disable-indev=fbdev --enable-small --disable-openssl --disable-xmm-clobber-test --disable-debug --enable-lto --disable-neon-clobber-test --disable-programs --disable-postproc --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages --disable-static --disable-sndio --disable-schannel --disable-securetransport --disable-xlib --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --disable-videotoolbox --disable-audiotoolbox --disable-appkit --disable-alsa --disable-cuda --disable-cuvid --disable-nvenc --disable-vaapi --disable-vdpau --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-gmp --enable-gnutls --enable-libmp3lame --enable-libass --enable-iconv --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libxml2 --enable-libopencore-amrnb --enable-libshine --enable-libspeex --enable-libwavpack --enable-libkvazaar --enable-libilbc --enable-libopus --enable-libsnappy --enable-libsoxr --enable-libaom --enable-libtwolame --disable-sdl2 --enable-libvo-amrwbenc --enable-zlib --enable-mediacodec
 libavutil 56. 55.100 / 56. 55.100
 libavcodec 58. 96.100 / 58. 96.100
 libavformat 58. 48.100 / 58. 48.100
 libavdevice 58. 11.101 / 58. 11.101
 libavfilter 7. 87.100 / 7. 87.100
 libswscale 5. 8.100 / 5. 8.100
 libswresample 3. 8.100 / 3. 8.100
 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/Android/data/org.xyz.abc/files/Tch Plus Recorder/tch_video_1618904094681.mp4':
 Metadata:
 major_brand : mp42
 minor_version : 0
 compatible_brands: isommp42
 creation_time : 2021-04-20T07:35:06.000000Z
 com.android.version: 11
 Duration: 00:00:10.07, start: 0.000000, bitrate: 12089 kb/s
 Stream #0:0(eng): Video: h264 (avc1 / 0x31637661), yuv420p(tv, bt709), 1280x720, 11998 kb/s, SAR 1:1 DAR 16:9, 29.81 fps, 30 tbr, 90k tbn, 180k tbc (default)
 Metadata:
 rotate : 90
 creation_time : 2021-04-20T07:35:06.000000Z
 handler_name : VideoHandle
 Side data:
 displaymatrix: rotation of -90.00 degrees
 Stream #0:1(eng): Audio: aac (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)
 Metadata:
 creation_time : 2021-04-20T07:35:06.000000Z
 handler_name : SoundHandle
 /storage/emulated/0/TchTrimVideo/tch_trim_Video1618904108454.mp4: No such file or directory